On 12/19/2013 12:13 PM, Anders Logg wrote: > On Thu, Dec 19, 2013 at 10:24:02AM +0100, Andre Massing wrote: >> On 12/18/2013 07:29 PM, Anders Logg wrote: >>> On Wed, Dec 18, 2013 at 05:51:34PM +0000, Garth N. Wells wrote: >>>> On 2013-12-18 17:43, Anders Logg wrote: >>>>> On Wed, Dec 18, 2013 at 01:03:19PM +0000, Garth N. Wells wrote: >>>>>> Chris has been working on adding a layer of ghost cells/mesh >>>>>> entities to a DOLFIN Mesh when running in parallel. The branch >>>>>> is at: >>>>>> >>>>>> https://bitbucket.org/fenics-project/dolfin/branch/chris/ghost-mesh >>>>>> >>>>>> The motivations for this are: >>>>>> >>>>>> 1. Support DG methods in parallel. >>>>>> 2. Communication-less assembly in parallel with MPI >>>>>> (GenericTensor::apply() will involve no communication). >>>>>> 3. Simpler construction of dofmaps (less MPI communication). >>>>>> 4. Simple detection of entities on a domain boundary. >>>>>> 5. Eliminates the need for a boundary mesh to build a >>>>>> distributed mesh. >>>>> >>>>> Wow. Sounds great! >>>>> >>>> >>>> To get this working, it would be helpful if we could remove the >>>> random access from MeshEntityIterator, see >>>> https://bitbucket.org/fenics-project/dolfin/issue/178. I don't think >>>> it is needed. >>> >>> Yes, definitely. I don't understand why it is there. >> >> It was once introduced as a convenient way to allow the AAB Box class >> (which stored an entity index) in CGAL BoundingBox trees to access the >> underlying mesh entities to test pairs of entities (wrap by the boxes) >> for collision. >> >> But I don't know how/where in the current code the proper entity-entity >> intersection test based on the candidates from the box-box intersection >> is handled. > > It is handled in GenericBoundingBoxTree.cpp by creating Cell objects > from entity index object, for example: > > Cell cell_A(*mesh_A, entity_index_A); > Cell cell_B(*mesh_B, entity_index_B); > if (cell_A.collides(cell_B)) > { > entities_A.insert(entity_index_A); > entities_B.insert(entity_index_B); > } > > The mesh iterators are only used once which is when the bounding box > tree is build (iterating over the cells and creating the bounding box > for each cell).
Ah, ok. Thanks for the pointer. -- Andre > > -- > Anders >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ fenics mailing list [email protected] http://fenicsproject.org/mailman/listinfo/fenics
