15#ifndef dealii_non_matching_fe_values
16#define dealii_non_matching_fe_values
169 template <
typename VectorType>
175 const VectorType &level_set,
204 template <
typename VectorType>
212 const VectorType &level_set,
246 template <
bool level_dof_access>
279 const std::optional<::FEValues<dim>> &
290 const std::optional<::FEValues<dim>> &
300 const std::optional<FEImmersedSurfaceValues<dim>> &
307 template <
typename CellIteratorType>
310 const unsigned int q_index,
311 const unsigned int mapping_index,
312 const unsigned int fe_index);
371 std::deque<std::optional<::FEValues<dim>>>
387 std::deque<std::optional<::FEValues<dim>>>
515 template <
typename VectorType>
521 const VectorType &level_set,
550 template <
typename VectorType>
558 const VectorType &level_set,
574 template <
typename CellIteratorType,
typename CellNeighborIteratorType>
577 const unsigned int face_no,
578 const unsigned int sub_face_no,
579 const CellNeighborIteratorType &cell_neighbor,
580 const unsigned int face_no_neighbor,
581 const unsigned int sub_face_no_neighbor,
594 template <
typename CellIteratorType>
597 const unsigned int face_no,
611 const std::optional<::FEInterfaceValues<dim>> &
623 const std::optional<::FEInterfaceValues<dim>> &
641 template <
typename CellAccessorType>
644 const unsigned int face_no,
645 const unsigned int q_index,
646 const unsigned int active_fe_index,
648 const unsigned int)> &call_reinit);
685 std::optional<::FEInterfaceValues<dim>>
692 std::optional<::FEInterfaceValues<dim>>
725 template <
typename CellIteratorType>
728 const unsigned int face_no,
729 const unsigned int q_index,
730 const unsigned int mapping_index,
731 const unsigned int active_fe_index)
735 const auto reinit_operation =
737 const unsigned int q_index) {
738 fe_interface_values.
reinit(
739 cell, face_no, q_index, mapping_index, active_fe_index);
742 do_reinit(cell, face_no, q_index, active_fe_index, reinit_operation);
748 template <
typename CellIteratorType,
typename CellNeighborIteratorType>
751 const unsigned int face_no,
752 const unsigned int sub_face_no,
753 const CellNeighborIteratorType &cell_neighbor,
754 const unsigned int face_no_neighbor,
755 const unsigned int sub_face_no_neighbor,
756 const unsigned int q_index,
757 const unsigned int mapping_index,
758 const unsigned int active_fe_index)
766 const auto reinit_operation =
768 const unsigned int q_index) {
769 fe_interface_values.
reinit(cell,
774 sub_face_no_neighbor,
780 do_reinit(cell, face_no, q_index, active_fe_index, reinit_operation);
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, const unsigned int fe_index_neighbor=numbers::invalid_unsigned_int)
const std::optional<::FEInterfaceValues< dim > > & get_outside_fe_values() const
const SmartPointer< const hp::FECollection< dim > > fe_collection
void initialize(const hp::QCollection< dim - 1 > &q_collection)
const SmartPointer< const hp::MappingCollection< dim > > mapping_collection
const hp::QCollection< 1 > q_collection_1D
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)
const RegionUpdateFlags region_update_flags
void reinit(const CellIteratorType &cell, const unsigned int face_no, 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)
void do_reinit(const TriaIterator< CellAccessorType > &cell, const unsigned int face_no, const unsigned int q_index, const unsigned int active_fe_index, const std::function< void(::FEInterfaceValues< dim > &, const unsigned int)> &call_reinit)
LocationToLevelSet current_face_location
std::optional<::FEInterfaceValues< dim > > fe_values_inside_full_quadrature
const std::optional<::FEInterfaceValues< dim > > & get_inside_fe_values() const
const SmartPointer< const MeshClassifier< dim > > mesh_classifier
FEInterfaceValues(const hp::FECollection< dim > &fe_collection, const Quadrature< 1 > &quadrature, const RegionUpdateFlags region_update_flags, const MeshClassifier< dim > &mesh_classifier, const DoFHandler< dim > &dof_handler, const VectorType &level_set, const AdditionalData &additional_data=AdditionalData())
std::optional<::FEInterfaceValues< dim > > fe_values_outside_full_quadrature
std::optional<::FEInterfaceValues< dim > > fe_values_inside
DiscreteFaceQuadratureGenerator< dim > face_quadrature_generator
typename FaceQuadratureGenerator< dim >::AdditionalData AdditionalData
std::optional<::FEInterfaceValues< dim > > fe_values_outside
std::optional< NonMatching::FEImmersedSurfaceValues< dim > > fe_values_surface
std::deque< std::optional<::FEValues< dim > > > fe_values_inside_full_quadrature
std::optional<::FEValues< dim > > fe_values_outside
LocationToLevelSet current_cell_location
const SmartPointer< const hp::FECollection< dim > > fe_collection
const std::optional<::FEValues< dim > > & get_outside_fe_values() const
void initialize(const hp::QCollection< dim > &q_collection)
const std::optional< FEImmersedSurfaceValues< dim > > & get_surface_fe_values() const
void reinit_internal(const CellIteratorType &cell, const unsigned int q_index, const unsigned int mapping_index, const unsigned int fe_index)
const SmartPointer< const MeshClassifier< dim > > mesh_classifier
const hp::QCollection< 1 > q_collection_1D
const RegionUpdateFlags region_update_flags
void reinit(const TriaIterator< DoFCellAccessor< dim, dim, level_dof_access > > &cell, const unsigned int q_index=numbers::invalid_unsigned_int, const unsigned int mapping_index=numbers::invalid_unsigned_int)
std::optional<::FEValues< dim > > fe_values_inside
const SmartPointer< const hp::MappingCollection< dim > > mapping_collection
typename QuadratureGenerator< dim >::AdditionalData AdditionalData
DiscreteQuadratureGenerator< dim > quadrature_generator
std::deque< std::optional<::FEValues< dim > > > fe_values_outside_full_quadrature
FEValues(const hp::FECollection< dim > &fe_collection, const Quadrature< 1 > &quadrature, const RegionUpdateFlags region_update_flags, const MeshClassifier< dim > &mesh_classifier, const DoFHandler< dim > &dof_handler, const VectorType &level_set, const AdditionalData &additional_data=AdditionalData())
unsigned int active_fe_index
const std::optional<::FEValues< dim > > & get_inside_fe_values() const
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
static ::ExceptionBase & ExcNotImplemented()
#define Assert(cond, exc)
static const unsigned int invalid_unsigned_int