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

Fix reinit of distributed vector using right signature #113

Closed fdrmrc closed 6 months ago

fdrmrc commented 6 months ago

The previous version of LA::d::V::reinit() (https://dealii.org/developer/doxygen/deal.II/classLinearAlgebra_1_1distributed_1_1Vector.html#a3e6c69e780f5c612a7e52b2cf87ac84b) for the master-slave-relationships (distributed) vector was taking a shared ptr and a communicator comm_sm. This signature assumes that comm_sm consists of processes on the same shared-memory domain.

In larger experiments with more compute nodes this rightfully throws with message:

MPI_ERR_RMA_SHARED:
    Memory cannot be shared".

Fixed by calling the overload with IndexSet and communicator (the IndexSet argument is retrieved from the partitioner).

fdrmrc commented 6 months ago

CI is failing due to a merged PR upstream in deal which requires the DynamicSparsityPattern to be initialized with locally relevant rows, I'll open another PR to fix this.