[Dune] How to map intersections?

Dragan Vidovic vitkecar at gmail.com
Thu Mar 26 16:31:38 CET 2009


Hi all

I traverse elements using a LeafIterator and then I access their faces
using an IntersectionIterator. I associate fluxes with faces, and they
are stored in a std::vector, so I need to map these faces to an index.

I tried two things. First I tried to make a mapper that would select
faces trough a layout like this:

template<int dim>
struct P1Layout
{
  bool contains (Dune::GeometryType gt)
  {
	if (gt.dim()==dim-1) return true;
	return false;
  }
};

But the mapper does not work with an Intersection as an argument, and
I don't know how to turn this Intersection into an Entity that the
mapper can use.

Then I tried to use the P0Layout from the grid-howto and a different
map function:

int 	map (const typename G::Traits::template Codim< 0 >::Entity &e,
int i, unsigned int codim) const

But this function does not take a *LeafIterator as the first argument,
and I don't know how to make what it would take, and I don't know how
can it do the mapping from a typename, a local number, and a codim. I
don't understand this function.

So how can I map faces? I use a simplex Alugrid, so all codimensions
should be there.

Cheers,

Dragan




More information about the Dune mailing list