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).

--
Anders
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to