Adjust code to build with ReferenceCell being a template <dim>.#6904
Open
bangerth wants to merge 1 commit intogeodynamics:mainfrom
Open
Adjust code to build with ReferenceCell being a template <dim>.#6904bangerth wants to merge 1 commit intogeodynamics:mainfrom
bangerth wants to merge 1 commit intogeodynamics:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Do not merge yet!
This is the ASPECT companion to dealii/dealii#19390 which changes
ReferenceCellto be a template<dim>. There are really only two issues one has to address:ReferenceCellitself now has a template argument. We use that class in a whole bunch of places and after starting out with lots of#if DEAL_II_VERSION_GTE(...)changes, I threw that all away and instead createdaspect::ReferenceCell<dim>for older deal.II versions that for every value ofdimsimply refers todealii::ReferenceCell. Then one can change all occurrences in our code base toReferenceCell<dim>, which correctly resolves to either the templated or non-templated version.ReferenceCellclass did not know about the dimension it lives in, and so many member functions were themselves templates of the space dimension. One typically had to provide this template argument by hand, as inreference_cell.get_gauss_type_quadrature<dim>(degree). This is now no longer necessary, but there is no convenient way to find a common way to describe this and I needed to have#ifstatements. We only have two functions where that matters, but both have half a dozen statements that needed to be converted, so I introduced lambda functions in each of these two places so I only needed one#ifconditional each.