[Dune] questions about ElementID_to_physical_entity
Jayesh Badwaik
jayeshb.work at gmail.com
Sun Jun 12 11:58:50 CEST 2011
Hi,
I'm trying to use the following code for setting up the
intersectionid. However, I'm getting stuck on
on which interstion to use?
Dune::IntersectionIterator::Intersection or Dune::Intersection??
And I'm still getting stuck. So I would like to request someone to
please send me some example code
of how you're doing the thing.
My requirement is to store the boundaryid elements in a method
corresponding to the grid mapper.
(example using SCSG Mapper I would be able to store the boundary id).
> int eid = elementid[factory.insertionIndex(element)];
> int bid = 0;
> if(factory.wasInserted(intersection))
> bid = boundaryid[factory.insertionIndex(intersection)];
Cheers and Regards,
Jayesh Vinay Badwaik
-----------------------------------------------------------------------------------------------------------
We are servants rather than masters in mathematics --- Charles Hermite
On Sat, Apr 9, 2011 at 15:10, Jö Fahlke <jorrit at jorrit.de> wrote:
> Am Sat, 9. Apr 2011, 14:32:31 +0530 schrieb Jayesh Badwaik:
>> i am trying to use elementid_to_physical_entity feature of the gmsh reader
>> and the code i'm using is as follows
>>
>> std::vector<int> boundaryid;
>> std::vector<int> elementid;
>> GridReader gridreader;
>> GridPointer gridptr = gridreader.read(gridfile, boundaryid, elementid,
>> true, true);
>
> I'm assuming GridPointer is something like Grid*, specifically that it is
> *not* something like Dune::GridPtr<Grid>.
>
> The problem is probably that the GmshReader stores the element and boundary
> ids in the order the elements and boundary segments were inserted into the
> grid. Of course, you cannot know this order. You can however obtain it from
> the gridfactory the GmshReader uses to insert the mesh elements:
>
> Dune::GmshReader<Grid> gridreader;
> Dune::GridFactory<Grid> factory;
> gridreader.read(factory, gridfile, boundaryid, elementid, true, true);
> Grid *gridptr = factory.create();
>
> and later
>
> int eid = elementid[factory.insertionIndex(element)];
> int bid = 0;
> if(factory.wasInserted(intersection))
> bid = boundaryid[factory.insertionIndex(intersection)];
>
> Note that calling insertionIndex() is only valid as long as you didn't change
> the grid since creation -- i.e. no globalRefine(), no adapt(), no
> loadBalance().
>
> @Dune: what is the purpose of those GmshReader::read() methods that fill
> element and boundary id but don't take a GidFactory?
>
> Bye,
> Jö.
>
> --
> If God had intended Man to Smoke, He would have set him on Fire.
> -- fortune
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
>
> iQIVAwUBTaApcemx9CKgc0OWAQjORxAAntWZMhdflziPqOAOXa4Bnms4twnF/g9L
> u4TWBh4VpQkBjyX28+sKe3/atHosPDsFR+o6lHI9zJyxusLxrMTbZ0r775JE2U2w
> 1jhuV0gzqJqhVOeQngIvGYkxSpjj1SBlYkvGveLqfVIiuK6+PGjzlJLKm7g0jGsA
> jHawwYJBtygmjcgzp8PkvBwWCyGM23faIwUXgeT12OudkssSdw2ffRiZVVZey51w
> idrHUTOitKoK9WaKckeYXbCuP2kUINgkCNY83pgUDMQ07PDEExQA0EqbHOZHycHW
> vtla84KeJyyaWKydT1Mups9gcbLTuwxt6KlffCins381gB1IJz/mZl7Q0oOHJTLD
> 2WnHUKnpAigKxpI9GgFFlmr/ajo27JMcG7sx24l+hzk1eIdqRfa38uFv08yR79Nx
> EQ7c1MFR887xYtIDHpotaiXnXPHNhEad60IAfUQEv25jy+0cgIgKJGPXTUtmvKEs
> SXphqrX+cgCho7uadUPf4RvwoHhKp8n5f9txTZACz7ZhiW2UvJkuE3CWSRVxVLBE
> SU+zuOlkvhYcc8hxEps6OLIcFtQuHgnM88RyaQrCSvC4Y7N7DnPbYCAD/0pK6ByY
> z6Ay2XzlMw8SSM+lBbMH5meeblq4nEobBI0ZEfXdb29qVkcsSsoxJyMBmVyFuW4M
> cNdWEUABNu0=
> =yGSV
> -----END PGP SIGNATURE-----
>
>
More information about the Dune
mailing list