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

Different changes to FEInterfaceValues and NM::FEInterfaceValues #17045

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

peterrum
Copy link
Member

  • FEInterfaceValues can now accept TriaIterator<CellAccessor>
  • NM::FEInterfaceValues can now accept TriaIterator<CellAccessor>
  • use active_fe_index in FEInterfaceValues (there have been places where the argument was not used)
  • exploit the hp capabilities of FEInterfaceValues in NM::FEInterfaceValues so that one does not have to store vectors of FEInterfaceValues (I believe NM::FEValues could be rewritten similarly: instead of using FEValues and would use hp::FEValues and get the current FEValues instance by hp::FEValues::get_present_fe_values(); by the std::optional makes this complicated/impossible (?))

@peterrum peterrum force-pushed the fe_interface_value_cell_accessor branch from 2ede70a to b459ab5 Compare May 19, 2024 09:59
Copy link
Member

@bangerth bangerth left a 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.

Comment on lines 1445 to 1450
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,
Copy link
Member

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)?

Copy link
Member Author

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 DoFCellAccessors.

Copy link
Member

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.

include/deal.II/non_matching/fe_values.h Outdated Show resolved Hide resolved
include/deal.II/non_matching/fe_values.h Show resolved Hide resolved
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