drwells / fiddle

4 stars 3 forks source link

Invert the way OverlapTriangulation works #105

Open drwells opened 1 year ago

drwells commented 1 year ago

The present version is inherently serial - we loop over the entire p::s::T on every processor and filter for cells which intersect the patches on the present processor. No communication (aside from the global scatter of bounding boxes in IFEDMethod) is required.

A choice leading to using more than p::s::T is to flip this around: given a global set of bounding boxes (e.g., the bounding box for each patch), loop over the locally-owned cells and send their IDs to any processors which intersect the correct patches. The check should look similar to BoxIntersectionPredicate::operator().

Getting this to work with AMR may be tricky - we can figure out which cells exist on the finest grid level but we will need to communicate that grid refinement information. Perhaps getting this working with p::f::T first is a better choice.