-
-
Notifications
You must be signed in to change notification settings - Fork 193
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simplify assembler implementation interfaces #3649
base: main
Are you sure you want to change the base?
Conversation
Summarizing:
In turn, this means that we do not need to send in the cstride or num facets per cell to the assembler. Could you be more specific about what bugs you stumbled over, and what the redundant data was? Finally, should we profile this before merging? This is one of the performance critical places in dolfinx, and is a real test of the performance of md span. As a side note, should we enforce that the md spans are contiguous in memory? |
Looks good. I would also be interested to know about performance. On a tangential note, what's the general status of C++23 and vendored std::mdspan? |
I have tested and there is no measurable performance difference.
It is enforced (and is row-major) by the extents that have been used. |
No measurable difference.
It's available in all major implementations except GCC/libstdc++, see https://en.cppreference.com/w/cpp/23. |
Should this be picked up in a test or is it naturally picked up now that it is an md span and not flattened? |
It is now picked up by an assertion. |
Use
mdspan
for multi-dimensional arrays in the (private) assembler implementations.mdspan
has crept into the interface in other places, so we might as well use it where it makes things simpler. This change: