> On 19 Mar 2021, at 15:20, Jed Brown <[email protected]> wrote:
> 
>> I guess the only issue is now one needs to always remember to traverse cells 
>> in the reordered_cells order (although if you call DMPlexPermute that is 
>> automatic?).
> 
> Can DMPlexPermute handle a non-stratified permutation?

I think the answer here is still no (as per your previous statement). The way 
we work around this in Firedrake is as I described above. Effectively we always 
traverse the cells in order specified by the RCM reordering. For traversal of 
facets and other entities we then build a traversal order once by traversing 
the cells and greedily ordering the facets/edges/etc...

I think you could get this behaviour from dmplexpermute if one wrote it so that 
it permutes the cells with RCM and then compatibly permutes lower-dimensional 
entities. This would maintain stratification, but I think keep good cache 
locality for all entity traversals. But I do not understand the details of what 
dmplexpermute is doing at the moment.

Cheers,

Lawrence

Reply via email to