fdrmrc / Polydeal

C++ implementation of Polygonal Discontinuous Galerkin method within the deal.II Finite Element library.
https://fdrmrc.github.io/Polydeal/
Other
0 stars 0 forks source link

Add concept of locally_owned polygon #75

Closed fdrmrc closed 10 months ago

fdrmrc commented 10 months ago

This draft PR introduces the concept of locally_owned polygon. In particular, the accessor class provides a is_locally_owned() methods that forwards the request to a deal.II cell.

A test with two MPI ranks has been added.

fdrmrc commented 10 months ago

In a DG implementation, in order not to compute jumps and averages twice, one needs to do

//inside assembly routine
if(current_cell_index < neighboring_cell_index){
    //compute jumps, averages on faces
}

With a p::d::T active cells indices are not unique among processors, so one should acutally use the unique identifier provided by cell->id(). Hence, an AgglomerationAccessor::id() has been added.

@luca-heltai Do you foresee any problems? (I've not thought about FECouplingValues/FEInterfaceValues approaches yet.) This would allow to have a distributed version of the classical DG methods on polygons just by replacing the dof_handler.active_cell_iterators() with ah.polytope_iterators().