From 6baba45892937287f358a3e3a6fcaf0eb9a92eb4 Mon Sep 17 00:00:00 2001 From: Marc Fehling Date: Sat, 20 May 2023 11:47:26 -0600 Subject: [PATCH] Apply fix to dataype mismatch to all occurences in MeshWorker::ScratchData. --- source/meshworker/scratch_data.cc | 48 +++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/source/meshworker/scratch_data.cc b/source/meshworker/scratch_data.cc index 8bb1d6b512..208000e0c8 100644 --- a/source/meshworker/scratch_data.cc +++ b/source/meshworker/scratch_data.cc @@ -410,9 +410,15 @@ namespace MeshWorker // face, then we defer to the dominance of one FE over another. This // should ensure that the optimal integration order and mapping // order are selected for this situation. - const unsigned int dominated_fe_index = - fe_collection->find_dominated_fe( - {cell->active_fe_index(), neighbor_cell->active_fe_index()}); + unsigned int dominated_fe_index = fe_collection->find_dominated_fe( + {cell->active_fe_index(), neighbor_cell->active_fe_index()}); + + // TODO: find_dominated_fe returns invalid_fe_index when no + // dominated FE has been found. We want to pass this value to + // FEFaceValues, but it expects an invalid_unsigned_int in this + // case. We need to match the interfaces in the future. + if (dominated_fe_index == numbers::invalid_fe_index) + dominated_fe_index = numbers::invalid_unsigned_int; hp_fe_subface_values->reinit(cell, face_no, @@ -498,9 +504,15 @@ namespace MeshWorker // face, then we defer to the dominance of one FE over another. This // should ensure that the optimal integration order and mapping // order are selected for this situation. - const unsigned int dominated_fe_index = - fe_collection->find_dominated_fe( - {cell->active_fe_index(), cell_neighbor->active_fe_index()}); + unsigned int dominated_fe_index = fe_collection->find_dominated_fe( + {cell->active_fe_index(), cell_neighbor->active_fe_index()}); + + // TODO: find_dominated_fe returns invalid_fe_index when no dominated FE + // has been found. We want to pass this value to FEFaceValues, but it + // expects an invalid_unsigned_int in this case. We need to match the + // interfaces in the future. + if (dominated_fe_index == numbers::invalid_fe_index) + dominated_fe_index = numbers::invalid_unsigned_int; interface_fe_values->reinit(cell, face_no, @@ -617,9 +629,15 @@ namespace MeshWorker // then we defer to the dominance of one FE over another. This should // ensure that the optimal integration order and mapping order are // selected for this situation. - const unsigned int dominated_fe_index = - fe_collection->find_dominated_fe( - {cell->active_fe_index(), neighbor_cell->active_fe_index()}); + unsigned int dominated_fe_index = fe_collection->find_dominated_fe( + {cell->active_fe_index(), neighbor_cell->active_fe_index()}); + + // TODO: find_dominated_fe returns invalid_fe_index when no dominated FE + // has been found. We want to pass this value to FEFaceValues, but it + // expects an invalid_unsigned_int in this case. We need to match the + // interfaces in the future. + if (dominated_fe_index == numbers::invalid_fe_index) + dominated_fe_index = numbers::invalid_unsigned_int; neighbor_hp_fe_face_values->reinit(neighbor_cell, face_no, @@ -706,9 +724,15 @@ namespace MeshWorker // face, then we defer to the dominance of one FE over another. This // should ensure that the optimal integration order and mapping // order are selected for this situation. - const unsigned int dominated_fe_index = - fe_collection->find_dominated_fe( - {cell->active_fe_index(), neighbor_cell->active_fe_index()}); + unsigned int dominated_fe_index = fe_collection->find_dominated_fe( + {cell->active_fe_index(), neighbor_cell->active_fe_index()}); + + // TODO: find_dominated_fe returns invalid_fe_index when no + // dominated FE has been found. We want to pass this value to + // FEFaceValues, but it expects an invalid_unsigned_int in this + // case. We need to match the interfaces in the future. + if (dominated_fe_index == numbers::invalid_fe_index) + dominated_fe_index = numbers::invalid_unsigned_int; neighbor_hp_fe_subface_values->reinit(neighbor_cell, face_no, -- 2.39.5