Skip to content
Snippets Groups Projects

Improve performance of assembleGlobalBasisTransferMatrix

Merged Carsten Gräser requested to merge feature/improve-basis-interpolation into master

The old approach used a std::map and compared coordinates in the inner most loop to avoid duplicate evaluations of LocalBasis. Instead the new approach determines the interpolation points first and caches the values in advaced based on the evaluation order. This improved the performance significantly.

This also removed tracking of already processed indices in a std::unordered_set, since it turned out that in all tested combinations this is slower than recomputing them. Once we have a utility to generically create a suitable nested bit-vector type for a basis, we can reintroduce this optimization, because this would indeed improve the performance.

Furthermore this cleans up the includes and removes some no longer used wrappers. Despite being implementation details, the function and geometry wrappers have not been in an Impl:: namespace. Hence there's a small possibility that someone used them elsewhere outside of dune-fufem.

Edited by Carsten Gräser

Merge request reports

Pipeline #76395 passed

Pipeline passed for ab970652 on feature/improve-basis-interpolation

Approval is optional

Merged by Carsten GräserCarsten Gräser 2 months ago (Jan 26, 2025 7:40pm UTC)

Merge details

  • Changes merged into master with fd02899e.
  • Deleted the source branch.

Pipeline #76409 passed

Pipeline passed for fd02899e on master

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
Please register or sign in to reply
Loading