]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Bug fix - renumbering points FERaviartThomasNodal
authorNiklas Wik <niiklaswiik@gmail.com>
Fri, 1 Apr 2022 15:32:52 +0000 (17:32 +0200)
committerNiklas Wik <niiklaswiik@gmail.com>
Fri, 1 Apr 2022 15:32:52 +0000 (17:32 +0200)
source/fe/fe_raviart_thomas_nodal.cc

index 08ecfed20f342e57c65f6115caaa5d014afd2aca..4acde3a11df456952d5455548f5038e422c73ad2 100644 (file)
@@ -231,19 +231,25 @@ namespace
     renumber_aniso[0].resize(n_pols);
     for (unsigned int i = 0; i < n_pols; ++i)
       renumber_aniso[0][i] = i;
-    if (dim > 1)
+    if (dim == 2)
       {
         // switch x and y component (i and j loops)
         renumber_aniso[1].resize(n_pols);
-        for (unsigned int k = 0; k < (dim > 2 ? degree + 1 : 1); ++k)
+        for (unsigned int j = 0; j < degree + 2; ++j)
+          for (unsigned int i = 0; i < degree + 1; ++i)
+            renumber_aniso[1][j * (degree + 1) + i] = j + i * (degree + 2);
+      }
+    if (dim == 3)
+      {
+        // switch x, y, and z component (i, j, k) -> (j, k, i)
+        renumber_aniso[1].resize(n_pols);
+        for (unsigned int k = 0; k < degree + 1; ++k)
           for (unsigned int j = 0; j < degree + 2; ++j)
             for (unsigned int i = 0; i < degree + 1; ++i)
               renumber_aniso[1][(k * (degree + 2) + j) * (degree + 1) + i] =
-                j + i * (degree + 2) + k * (degree + 2) * (degree + 1);
-      }
-    if (dim > 2)
-      {
-        // switch x and z component (i and k loops)
+                j + k * (degree + 2) + i * (degree + 2) * (degree + 1);
+
+        // switch x, y, and z component (i, j, k) -> (k, i, j)
         renumber_aniso[2].resize(n_pols);
         for (unsigned int k = 0; k < degree + 2; ++k)
           for (unsigned int j = 0; j < degree + 1; ++j)

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.