[Dune] boundarySegmentIndex for ALUGRID_CUBE
Sahai, Amal
sahai2 at illinois.edu
Tue Aug 22 21:37:50 CEST 2017
I'm attaching the .msh file that I used to test this example. I have a pretty simple program (This code is based on fem-dg/algorithm/gridinitializer.hh). I'm creating an ALUGrid for cubic elements using the gmsh reader:
// Create GridFactory and then read mesh
Dune::GridFactory< GridImp > factory;
// Stored Physical Ids (first tag) for boundary and elements
std::vector<int> bIdToPhysical, eindexToPhysical;
Dune::GmshReader< GridImp >::read(factory,filename, bIdToPhysical, eindexToPhysical,true,true);
// read grid with given file name
gridptr = factory.createGrid();
I wanted to check out the boundary indices so I created the following loop:
// Grid View for the leaf
typedef typename GridImp :: LeafGridView GridView;
// get grid view on leaf part
GridView gridView = gridptr->leafGridView();
// element iterator type
typedef typename GridView::template Codim<0>::Iterator LeafIterator;
// intersection iterator type
typedef typename GridView::IntersectionIterator IntersectionIterator;
std::vector<int> count;
LeafIterator endit = gridView.template end<0>();
for (LeafIterator it = gridView.template begin<0>(); it!=endit; ++it)
{
// run through all intersections with neighbors and boundary
IntersectionIterator isend = gridView.iend(*it);
for (IntersectionIterator is = gridView.ibegin(*it); is!=isend; ++is)
{
// If given intersection is on a boundary
if(!is->neighbor() && is->boundary())
if(factory.wasInserted(*is))
{
std::cout << "Boundary Segment Index : " << is->boundarySegmentIndex() << "\t"
<< "Factory Insertion Index : " << factory.insertionIndex(*is) << "\n";
count.push_back(is->boundarySegmentIndex());
}
}
}
The boundary Segment index makes no sense (non-continuous and is much larger than numBoundarySegments.
Regards
Amal
________________________________________
From: Dune [dune-bounces at lists.dune-project.org] on behalf of Martin Nolte [nolte at mathematik.uni-freiburg.de]
Sent: Tuesday, August 22, 2017 12:50 PM
To: dune at lists.dune-project.org
Subject: Re: [Dune] boundarySegmentIndex for ALUGRID_CUBE
Hi Amal,
that would be a bug. Could you create a small example program and file a bug
report on the dune-alugrid issue tracker?
Best,
Martin
On 08/22/2017 06:02 PM, Sahai, Amal wrote:
> Does a call to intersection.boundarySegmentIndex() not work correctly for ALU grid with cubes/quads? I was expecting a continuous range of indices with a maximum value that is equal to grid.numBoundarySegments() - 1, but this is not what I am observing. I did not experience this behavior while running an ALU grid with tet/triangular elements (and the boundary segment index was recovered correctly).
>
> Is this a known problem and are their ways to circumvent this? How does one go about attaching data (physical Ids recovered from the gmsh reader) to intersections for an ALU grid? Is there an alternative unique index I can use for this purpose?
>
> Regards
> Amal
> _______________________________________________
> Dune mailing list
> Dune at lists.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
_______________________________________________
Dune mailing list
Dune at lists.dune-project.org
http://lists.dune-project.org/mailman/listinfo/dune
-------------- next part --------------
A non-text attachment was scrubbed...
Name: quad_1cell.txt
Type: application/octet-stream
Size: 389 bytes
Desc: quad_1cell.txt
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20170822/0cf5407d/attachment.obj>
More information about the Dune
mailing list