[Dune] boundaries and ids

Marco Cisternino marco.cisternino at optimad.it
Wed Mar 6 17:58:36 CET 2013


Last trace then I'll wait:
with a debugger I looked at the values in my factory.boundaryIds_ and 
all the entries are good, exactly what I set.
But after the grid creation this map (factory.boundaryIds_) is cleared 
and the ids of my boundary intersections are not the same I set.
Then it's during creation that something goes wrong.

Marco

Il 06/03/2013 17:22, Marco Cisternino ha scritto:
> I would like to say more about my problem:
> I build my factory on process 0 adding vertices, elements and 
> boundary. Then I create the grid.
> Before loadbalancong the grid, I ask all the boundary intersections 
> for their boundary ids.
> And their boundary ids are wrong, better, not the boundary id I set in 
> insertBoundary.
>
> pseudo-code:
> for(every line in my grid.bnd)
>     read the vertices in vertex vector;
>     read the boundaryId
>     
> factory_.insertBoundary(Dune::GeometryType(Dune::GeometryType::cube,dim-1),vertices,boundaryId);
>
> factory_.createGrid()
>
> for(every element)
>     for(every intersection)
>         intersection.boundaryId()
>
> In a cube of 3x3x3 element I set 9 boundary intersection with id = 1 
> but I get 24 boundary intersections with boundaryId=1.
> The result is the same after load balancing the grid on 2 processes.
> What didn't I understand about boundaryId?
>
> Thanks.
>
> Marco
>
>
>
> Il 05/03/2013 19:42, Marco Cisternino ha scritto:
>> Hi duners,
>> I have a problem with boundaries and integer ids.
>> I'm using ALUGrid<3,3> and I create my grid from PROStar files(.cel 
>> .vrt and .bnd) using a modification of mine of the starcdreader.hh.
>> I use Dune 2.1.1.
>> I use insertVertex, insertElement methods of the factory and I can 
>> build my grid successfully. I didn't modified the part of 
>> starcdreader.hh which does this.
>> I added some lines of code to insert boundary faces and integers 
>> labels (id) to apply boundary conditions.
>> My problem is in the use of insertBoundary, specifically:
>> insertBoundary(const GeometryType & geometry, const std::vector< 
>> VertexId > & faceVertices, const int id)
>>
>> The smallest example I can think is a grid made of just one element:
>> the vrt file:
>> 1 0.475528 0 -0.154508 (index of the vertex and its position in 3D)
>> 2 0 0.475528 -0.154508
>> 3 0.293893 0 0.404508
>> 4 0 0.293893 0.404508
>> 5 0.951057 0 -0.309017
>> 6 0 0.951057 -0.309017
>> 7 0.587785 0 0.809017
>> 8 0 0.587785 0.809017
>> the cel file
>> 1 1 2 4 3 5 6 8 7 1 1 1.0 (index of the element, 8 integers for the 
>> vertices, 2 integers I don't use and one double for data to be 
>> attached to the element)
>> and the bnd file
>> 1 1 3 7 5 1 0 PI01 (index of the boundary face 4 integers for the 
>> vertices, the ID, one integer I don't use, a string for my boundary 
>> conditions)
>> 2 2 4 8 6 2 0 PO01
>> 3 1 2 6 5 3 0 WA01
>> 4 3 4 8 7 4 0 WA01
>> 5 1 2 4 3 5 0 WA01
>> 6 5 6 8 7 6 0 WA01
>>
>> When I read my bnd file I read the index, the vertices of the face 
>> (putting them in a vector called vertices) and the ID (putting it in 
>> a integer variable called boundaryId). Then I call:
>> factory_.insertBoundary(Dune::GeometryType(Dune::GeometryType::cube,dim-1),vertices,boundaryId);
>> Everything seems to go in the right way: compiler compiles, the code 
>> runs without errors, BUT
>> when I visit boundary intersection and I ask for
>> intersection.boundaryId()
>> the answer is not what I expected: for the case above the answer is 
>> 1, no matter the boundary intersection I ask (I should get 1 2 3 4 5 
>> 6, not necessarily in this order).
>> Where's my mistake??
>> I thought there was a way to label boundary faces(intersections) and 
>> I thought the label would be communicated during amr and load 
>> balancing automatically. Am I wrong??
>>
>> I hope that someone will be so kind to help me, because this is 
>> crucial for my code.
>>
>> Thanks a lot for any hint.
>>
>> Bests,
>>
>> Marco
>>
>>
>>
>>
>>
>> -- 
>> ------------------------------------
>> Marco Cisternino, Ph.D.
>> OPTIMAD Engineering s.r.l.
>> Via Giacinto Collegno 18
>> 10143 Torino - Italy
>> www.optimad.it
>> marco.cisternino at optimad.it
>> +39 011 19719782
>> ------------------------------------
>
> -- 
> ------------------------------------
> Marco Cisternino, Ph.D.
> OPTIMAD Engineering s.r.l.
> Via Giacinto Collegno 18
> 10143 Torino - Italy
> www.optimad.it
> marco.cisternino at optimad.it
> +39 011 19719782
> ------------------------------------

-- 
------------------------------------
Marco Cisternino, Ph.D.
OPTIMAD Engineering s.r.l.
Via Giacinto Collegno 18
10143 Torino - Italy
www.optimad.it
marco.cisternino at optimad.it
+39 011 19719782
------------------------------------

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20130306/30fe1b56/attachment.htm>


More information about the Dune mailing list