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 ShapeInfo: Move some code to UnivariateShapeData #15905

Merged
merged 1 commit into from Aug 23, 2023

Conversation

kronbichler
Copy link
Member

This PR makes some code more object-oriented by moving the code that computes a bunch of stuff to the surrounding struct, UnivariateShapeData, rather than the outer class ShapeInfo where we had to create aliases auto &shape_gradients_collocation = univariate_shape_data.shape_gradients_collocation; and similarly. This was initially introduced in #9655 when we added the univariate shape data, but we somehow did not recognize that object-oriented programming allows us to do much better.

I then also break out a new function evaluate_collocation_space for the same reason. This shrinks ShapeInfo::reinit() a bit, but it is still a spaghetti function of more than 650 lines after this PR. Apart from the interface, this reduces code by around 30 lines, which is a good sign that the new approach is better. I will use this function in a follow-up function for Raviart-Thomas cleanup.

@kronbichler
Copy link
Member Author

Related to #9544.

@peterrum peterrum merged commit 7af156d into dealii:master Aug 23, 2023
15 checks passed
@kronbichler kronbichler deleted the cleanup_shape_info branch August 23, 2023 07:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants