Closed fdrmrc closed 1 year ago
The tests are not passing.
The failure is related to the function that builds the agglomerated mesh through the Rtree. That one is not yet in the deal.II master. Let me revert the test for the time being, I'll write the missing functionality as an utility.
Last commit exploits hash tables to store the slaves of each agglomeration. This is used intensively in get_slaves_of_idx(master_cell)
I was impressed by the large times we had during the assembly so I quickly profiled with Kcachegrind. Here's the call-graph with the current master:
The function
n_faces()
(the function which checks the number of faces for an agglomerate) was accidentally called multiple times during theneighbor_of_agglomerated_neighbor()
. With this fix the number of calls ton_faces()
is now equal to the number of calls toneighbor_of_agglomerated_neighbor
(i.e. 780 in the next picture).This also highlights other costly calls.
@luca-heltai