]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Portable FEEvaluation: Only go into constraints function if constrained 18330/head
authorMartin Kronbichler <martin.kronbichler@rub.de>
Sat, 5 Apr 2025 11:46:49 +0000 (13:46 +0200)
committerMartin Kronbichler <martin.kronbichler@rub.de>
Sat, 5 Apr 2025 11:46:49 +0000 (13:46 +0200)
include/deal.II/matrix_free/portable_fe_evaluation.h

index 3b20bd5fbe752a4f3f52e5cf79cd1cdf9400d2fe..0db768b51b6033384554f349c8b64cea1bd19eb5 100644 (file)
@@ -327,11 +327,14 @@ namespace Portable
 
     for (unsigned int c = 0; c < n_components_; ++c)
       {
-        internal::resolve_hanging_nodes<dim, fe_degree, false, Number>(
-          data->team_member,
-          precomputed_data->constraint_weights,
-          precomputed_data->constraint_mask(cell_id * n_components + c),
-          Kokkos::subview(shared_data->values, Kokkos::ALL, c));
+        if (precomputed_data->constraint_mask(cell_id * n_components + c) !=
+            dealii::internal::MatrixFreeFunctions::ConstraintKinds::
+              unconstrained)
+          internal::resolve_hanging_nodes<dim, fe_degree, false, Number>(
+            data->team_member,
+            precomputed_data->constraint_weights,
+            precomputed_data->constraint_mask(cell_id * n_components + c),
+            Kokkos::subview(shared_data->values, Kokkos::ALL, c));
       }
   }
 
@@ -348,11 +351,14 @@ namespace Portable
   {
     for (unsigned int c = 0; c < n_components_; ++c)
       {
-        internal::resolve_hanging_nodes<dim, fe_degree, true, Number>(
-          data->team_member,
-          precomputed_data->constraint_weights,
-          precomputed_data->constraint_mask(cell_id * n_components + c),
-          Kokkos::subview(shared_data->values, Kokkos::ALL, c));
+        if (precomputed_data->constraint_mask(cell_id * n_components + c) !=
+            dealii::internal::MatrixFreeFunctions::ConstraintKinds::
+              unconstrained)
+          internal::resolve_hanging_nodes<dim, fe_degree, true, Number>(
+            data->team_member,
+            precomputed_data->constraint_weights,
+            precomputed_data->constraint_mask(cell_id * n_components + c),
+            Kokkos::subview(shared_data->values, Kokkos::ALL, c));
       }
 
     if (precomputed_data->use_coloring)

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.