-
Notifications
You must be signed in to change notification settings - Fork 708
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
Different changes to FEInterfaceValues
and NM::FEInterfaceValues
#17045
base: master
Are you sure you want to change the base?
Conversation
Use active_fe_index Fix
2ede70a
to
b459ab5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not quite clear about some of the template argument changes. In general, it would be nice to have tests that check the new functionality.
template <typename CellIteratorType, typename CellNeighborIteratorType> | ||
template <typename CellType> | ||
void | ||
reinit(const CellIteratorType &cell, | ||
const unsigned int face_no, | ||
const unsigned int sub_face_no, | ||
const CellNeighborIteratorType &cell_neighbor, | ||
const unsigned int face_no_neighbor, | ||
const unsigned int sub_face_no_neighbor, | ||
const unsigned int q_index = numbers::invalid_unsigned_int, | ||
const unsigned int mapping_index = numbers::invalid_unsigned_int, | ||
const unsigned int fe_index = numbers::invalid_unsigned_int); | ||
reinit(const TriaIterator<CellType> &cell, | ||
const unsigned int face_no, | ||
const unsigned int sub_face_no, | ||
const TriaIterator<CellType> &cell_neighbor, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand this change. First, it shouldn't be CellType
as template argument, but AccessorType
(or perhaps CellAccessorType
), but more importantly, I'm unclear what it is you are trying to enable with the change that wasn't possible before (or what you want to prevent that accidentally compiled before but shouldn't have)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm unclear what it is you are trying to enable with the change that wasn't possible before (or what you want to prevent that accidentally compiled before but shouldn't have)?
The code evaluated the shape functions at the quadrature points AND loaded the DoF indices. You can do the latter only of DoFCellAccessor
s.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, so you're saying that the change to the iterator type is only because you wanted to get access to the Accessor
type of the iterator? You could have gotten that via typename CellIteratorType::AccessorType
, which I think makes all of this easier to read because users don't typically know what classes are behind the cell iterators.
FEInterfaceValues
can now acceptTriaIterator<CellAccessor>
NM::FEInterfaceValues
can now acceptTriaIterator<CellAccessor>
active_fe_index
inFEInterfaceValues
(there have been places where the argument was not used)FEInterfaceValues
inNM::FEInterfaceValues
so that one does not have to store vectors ofFEInterfaceValues
(I believeNM::FEValues
could be rewritten similarly: instead of usingFEValues
and would usehp::FEValues
and get the currentFEValues
instance byhp::FEValues::get_present_fe_values()
; by thestd::optional
makes this complicated/impossible (?))