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
> 


Attachment: signature.asc
Description: OpenPGP digital signature

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

Reply via email to