Skip to content
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

MatrixFree: Unify DoFInfo and ConstraintInfo #15162

Open
kronbichler opened this issue May 1, 2023 · 0 comments
Open

MatrixFree: Unify DoFInfo and ConstraintInfo #15162

kronbichler opened this issue May 1, 2023 · 0 comments

Comments

@kronbichler
Copy link
Member

While reviewing #15141, I realized once more that https://github.com/dealii/dealii/blob/master/include/deal.II/matrix_free/constraint_info.h, i.e., internal::MatrixFreeFunctions::ConstraintInfo duplicates too much information from internal::MatrixFree::DoFInfo, to be usable in the context of multigrid algorithms. As posted in #13519 (review), we should really aim to see this class as an intermediate step towards a possible restructuring in the interfaces, not a long-term solution.

In view of #14968 (that unfortunately seems to be low-priority), this is also a serious performance concern. One possible solution to the performance aspects would be to try if some of the two-level transfer objects (essentially all non-geometric ones that use two DoFHandler objects based on the same triangulation) can use the MatrixFree objects directly and only link the two indices with each other. Now that we have

void
reinit(const std::array<unsigned int, VectorizedArrayType::size()> &cell_ids);
from #13260, this should be rather simple. Of course, we still have the code duplication aspects, that also need to addressed. However, I consider the performance aspects (and the associated memory consumption) even more important.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant