]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
check local renumbering
authorkanschat <kanschat@0785d39b-7218-0410-832d-ea1e28bc413d>
Fri, 23 Aug 2013 04:49:54 +0000 (04:49 +0000)
committerkanschat <kanschat@0785d39b-7218-0410-832d-ea1e28bc413d>
Fri, 23 Aug 2013 04:49:54 +0000 (04:49 +0000)
git-svn-id: https://svn.dealii.org/trunk@30446 0785d39b-7218-0410-832d-ea1e28bc413d

tests/fe/fe_tools_block_renumbering.cc [new file with mode: 0644]
tests/fe/fe_tools_block_renumbering/cmp/generic [new file with mode: 0644]

diff --git a/tests/fe/fe_tools_block_renumbering.cc b/tests/fe/fe_tools_block_renumbering.cc
new file mode 100644 (file)
index 0000000..26bec83
--- /dev/null
@@ -0,0 +1,100 @@
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+// Test the cell matrices generated in FETools and the local renumbering vector.
+
+#include "../tests.h"
+#include <iostream>
+#include <iomanip>
+#include <fstream>
+
+#include <deal.II/base/logstream.h>
+
+#include <deal.II/fe/fe_q.h>
+#include <deal.II/fe/fe_dgq.h>
+#include <deal.II/fe/fe_dgp.h>
+#include <deal.II/fe/fe_raviart_thomas.h>
+#include <deal.II/fe/fe_nedelec.h>
+#include <deal.II/fe/fe_system.h>
+
+#include <deal.II/fe/fe_tools.h>
+
+void logvec (const std::vector<types::global_dof_index>& v, const std::vector<types::global_dof_index>& w)
+{
+  deallog << '[';
+  for (unsigned int i=0; i<w.size(); ++i)
+    deallog << ' ' << w[i];
+  deallog << " ]" << std::endl << '[';;
+  for (unsigned int i=0; i<v.size(); ++i)
+    deallog << ' ' << v[i];
+  deallog << " ]" << std::endl;
+}
+
+
+template<int dim>
+void test_renumbering(const FiniteElement<dim> &fe)
+{
+  std::vector<types::global_dof_index> v(fe.dofs_per_cell);
+  std::vector<types::global_dof_index> w(fe.n_blocks());
+  
+  deallog << fe.get_name() << std::endl;
+  
+  FETools::compute_block_renumbering(fe, v, w, false);
+  logvec(v,w);
+  FETools::compute_block_renumbering(fe, v, w, true);
+  logvec(v,w);
+}
+
+
+template<int dim>
+void test_renumbering()
+{
+  deallog.push("Renumber");
+
+  FE_Q<dim> q1(1);
+  FE_Q<dim> q3(3);
+  FE_DGQ<dim> dg1(1);
+  FE_RaviartThomas<dim> rt1(1);
+  FE_Nedelec<dim> n1(1);
+  test_renumbering(q1);
+  test_renumbering(q3);
+  test_renumbering(dg1);
+  test_renumbering(rt1);
+  test_renumbering(n1);
+
+  FESystem<dim> q1_3(q1,3);
+  test_renumbering(q1_3);
+  FESystem<dim> q3_3(q3,3);
+  test_renumbering(q3_3);
+  FESystem<dim> q3_2_q1_3(q3, 2, q1, 3);
+  test_renumbering(q3_2_q1_3);
+  test_renumbering(FESystem<dim>(rt1,1,dg1,1));
+  test_renumbering(FESystem<dim>(rt1,1,q1,1));
+  test_renumbering(FESystem<dim>(rt1,2,q1,2));
+  test_renumbering(FESystem<dim>(n1,1,q1,1));
+  
+  deallog.pop();
+}
+
+
+int main()
+{
+  initlog(__FILE__);
+//  test_renumbering<1>();
+  test_renumbering<2>();
+  test_renumbering<3>();
+}
diff --git a/tests/fe/fe_tools_block_renumbering/cmp/generic b/tests/fe/fe_tools_block_renumbering/cmp/generic
new file mode 100644 (file)
index 0000000..00fcbe3
--- /dev/null
@@ -0,0 +1,121 @@
+
+DEAL:Renumber::FE_Q<2>(1)
+DEAL:Renumber::[ 4 ]
+DEAL:Renumber::[ 0 1 2 3 ]
+DEAL:Renumber::[ 0 ]
+DEAL:Renumber::[ 0 1 2 3 ]
+DEAL:Renumber::FE_Q<2>(3)
+DEAL:Renumber::[ 16 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ]
+DEAL:Renumber::[ 0 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ]
+DEAL:Renumber::FE_DGQ<2>(1)
+DEAL:Renumber::[ 4 ]
+DEAL:Renumber::[ 0 1 2 3 ]
+DEAL:Renumber::[ 0 ]
+DEAL:Renumber::[ 0 1 2 3 ]
+DEAL:Renumber::FE_RaviartThomas<2>(1)
+DEAL:Renumber::[ 12 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 8 9 10 11 ]
+DEAL:Renumber::[ 0 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 8 9 10 11 ]
+DEAL:Renumber::FE_Nedelec<2>(1)
+DEAL:Renumber::[ 12 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 8 9 10 11 ]
+DEAL:Renumber::[ 0 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 8 9 10 11 ]
+DEAL:Renumber::FESystem<2>[FE_Q<2>(1)^3]
+DEAL:Renumber::[ 4 4 4 ]
+DEAL:Renumber::[ 0 4 8 1 5 9 2 6 10 3 7 11 ]
+DEAL:Renumber::[ 0 4 8 ]
+DEAL:Renumber::[ 0 4 8 1 5 9 2 6 10 3 7 11 ]
+DEAL:Renumber::FESystem<2>[FE_Q<2>(3)^3]
+DEAL:Renumber::[ 16 16 16 ]
+DEAL:Renumber::[ 0 16 32 1 17 33 2 18 34 3 19 35 4 5 20 21 36 37 6 7 22 23 38 39 8 9 24 25 40 41 10 11 26 27 42 43 12 13 14 15 28 29 30 31 44 45 46 47 ]
+DEAL:Renumber::[ 0 16 32 ]
+DEAL:Renumber::[ 0 16 32 1 17 33 2 18 34 3 19 35 4 5 20 21 36 37 6 7 22 23 38 39 8 9 24 25 40 41 10 11 26 27 42 43 12 13 14 15 28 29 30 31 44 45 46 47 ]
+DEAL:Renumber::FESystem<2>[FE_Q<2>(3)^2-FE_Q<2>(1)^3]
+DEAL:Renumber::[ 16 16 4 4 4 ]
+DEAL:Renumber::[ 0 16 32 36 40 1 17 33 37 41 2 18 34 38 42 3 19 35 39 43 4 5 20 21 6 7 22 23 8 9 24 25 10 11 26 27 12 13 14 15 28 29 30 31 ]
+DEAL:Renumber::[ 0 16 32 36 40 ]
+DEAL:Renumber::[ 0 16 32 36 40 1 17 33 37 41 2 18 34 38 42 3 19 35 39 43 4 5 20 21 6 7 22 23 8 9 24 25 10 11 26 27 12 13 14 15 28 29 30 31 ]
+DEAL:Renumber::FESystem<2>[FE_RaviartThomas<2>(1)-FE_DGQ<2>(1)]
+DEAL:Renumber::[ 12 4 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ]
+DEAL:Renumber::[ 0 12 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ]
+DEAL:Renumber::FESystem<2>[FE_RaviartThomas<2>(1)-FE_Q<2>(1)]
+DEAL:Renumber::[ 12 4 ]
+DEAL:Renumber::[ 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 ]
+DEAL:Renumber::[ 0 12 ]
+DEAL:Renumber::[ 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 ]
+DEAL:Renumber::FESystem<2>[FE_RaviartThomas<2>(1)^2-FE_Q<2>(1)^2]
+DEAL:Renumber::[ 12 12 4 4 ]
+DEAL:Renumber::[ 24 28 25 29 26 30 27 31 0 1 12 13 2 3 14 15 4 5 16 17 6 7 18 19 8 9 10 11 20 21 22 23 ]
+DEAL:Renumber::[ 0 12 24 28 ]
+DEAL:Renumber::[ 24 28 25 29 26 30 27 31 0 1 12 13 2 3 14 15 4 5 16 17 6 7 18 19 8 9 10 11 20 21 22 23 ]
+DEAL:Renumber::FESystem<2>[FE_Nedelec<2>(1)-FE_Q<2>(1)]
+DEAL:Renumber::[ 12 4 ]
+DEAL:Renumber::[ 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 ]
+DEAL:Renumber::[ 0 12 ]
+DEAL:Renumber::[ 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 ]
+DEAL:Renumber::FE_Q<3>(1)
+DEAL:Renumber::[ 8 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 ]
+DEAL:Renumber::[ 0 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 ]
+DEAL:Renumber::FE_Q<3>(3)
+DEAL:Renumber::[ 64 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 ]
+DEAL:Renumber::[ 0 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 ]
+DEAL:Renumber::FE_DGQ<3>(1)
+DEAL:Renumber::[ 8 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 ]
+DEAL:Renumber::[ 0 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 ]
+DEAL:Renumber::FE_RaviartThomas<3>(1)
+DEAL:Renumber::[ 36 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ]
+DEAL:Renumber::[ 0 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ]
+DEAL:Renumber::FE_Nedelec<3>(1)
+DEAL:Renumber::[ 54 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 ]
+DEAL:Renumber::[ 0 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 ]
+DEAL:Renumber::FESystem<3>[FE_Q<3>(1)^3]
+DEAL:Renumber::[ 8 8 8 ]
+DEAL:Renumber::[ 0 8 16 1 9 17 2 10 18 3 11 19 4 12 20 5 13 21 6 14 22 7 15 23 ]
+DEAL:Renumber::[ 0 8 16 ]
+DEAL:Renumber::[ 0 8 16 1 9 17 2 10 18 3 11 19 4 12 20 5 13 21 6 14 22 7 15 23 ]
+DEAL:Renumber::FESystem<3>[FE_Q<3>(3)^3]
+DEAL:Renumber::[ 64 64 64 ]
+DEAL:Renumber::[ 0 64 128 1 65 129 2 66 130 3 67 131 4 68 132 5 69 133 6 70 134 7 71 135 8 9 72 73 136 137 10 11 74 75 138 139 12 13 76 77 140 141 14 15 78 79 142 143 16 17 80 81 144 145 18 19 82 83 146 147 20 21 84 85 148 149 22 23 86 87 150 151 24 25 88 89 152 153 26 27 90 91 154 155 28 29 92 93 156 157 30 31 94 95 158 159 32 33 34 35 96 97 98 99 160 161 162 163 36 37 38 39 100 101 102 103 164 165 166 167 40 41 42 43 104 105 106 107 168 169 170 171 44 45 46 47 108 109 110 111 172 173 174 175 48 49 50 51 112 113 114 115 176 177 178 179 52 53 54 55 116 117 118 119 180 181 182 183 56 57 58 59 60 61 62 63 120 121 122 123 124 125 126 127 184 185 186 187 188 189 190 191 ]
+DEAL:Renumber::[ 0 64 128 ]
+DEAL:Renumber::[ 0 64 128 1 65 129 2 66 130 3 67 131 4 68 132 5 69 133 6 70 134 7 71 135 8 9 72 73 136 137 10 11 74 75 138 139 12 13 76 77 140 141 14 15 78 79 142 143 16 17 80 81 144 145 18 19 82 83 146 147 20 21 84 85 148 149 22 23 86 87 150 151 24 25 88 89 152 153 26 27 90 91 154 155 28 29 92 93 156 157 30 31 94 95 158 159 32 33 34 35 96 97 98 99 160 161 162 163 36 37 38 39 100 101 102 103 164 165 166 167 40 41 42 43 104 105 106 107 168 169 170 171 44 45 46 47 108 109 110 111 172 173 174 175 48 49 50 51 112 113 114 115 176 177 178 179 52 53 54 55 116 117 118 119 180 181 182 183 56 57 58 59 60 61 62 63 120 121 122 123 124 125 126 127 184 185 186 187 188 189 190 191 ]
+DEAL:Renumber::FESystem<3>[FE_Q<3>(3)^2-FE_Q<3>(1)^3]
+DEAL:Renumber::[ 64 64 8 8 8 ]
+DEAL:Renumber::[ 0 64 128 136 144 1 65 129 137 145 2 66 130 138 146 3 67 131 139 147 4 68 132 140 148 5 69 133 141 149 6 70 134 142 150 7 71 135 143 151 8 9 72 73 10 11 74 75 12 13 76 77 14 15 78 79 16 17 80 81 18 19 82 83 20 21 84 85 22 23 86 87 24 25 88 89 26 27 90 91 28 29 92 93 30 31 94 95 32 33 34 35 96 97 98 99 36 37 38 39 100 101 102 103 40 41 42 43 104 105 106 107 44 45 46 47 108 109 110 111 48 49 50 51 112 113 114 115 52 53 54 55 116 117 118 119 56 57 58 59 60 61 62 63 120 121 122 123 124 125 126 127 ]
+DEAL:Renumber::[ 0 64 128 136 144 ]
+DEAL:Renumber::[ 0 64 128 136 144 1 65 129 137 145 2 66 130 138 146 3 67 131 139 147 4 68 132 140 148 5 69 133 141 149 6 70 134 142 150 7 71 135 143 151 8 9 72 73 10 11 74 75 12 13 76 77 14 15 78 79 16 17 80 81 18 19 82 83 20 21 84 85 22 23 86 87 24 25 88 89 26 27 90 91 28 29 92 93 30 31 94 95 32 33 34 35 96 97 98 99 36 37 38 39 100 101 102 103 40 41 42 43 104 105 106 107 44 45 46 47 108 109 110 111 48 49 50 51 112 113 114 115 52 53 54 55 116 117 118 119 56 57 58 59 60 61 62 63 120 121 122 123 124 125 126 127 ]
+DEAL:Renumber::FESystem<3>[FE_RaviartThomas<3>(1)-FE_DGQ<3>(1)]
+DEAL:Renumber::[ 36 8 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ]
+DEAL:Renumber::[ 0 36 ]
+DEAL:Renumber::[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ]
+DEAL:Renumber::FESystem<3>[FE_RaviartThomas<3>(1)-FE_Q<3>(1)]
+DEAL:Renumber::[ 36 8 ]
+DEAL:Renumber::[ 36 37 38 39 40 41 42 43 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ]
+DEAL:Renumber::[ 0 36 ]
+DEAL:Renumber::[ 36 37 38 39 40 41 42 43 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ]
+DEAL:Renumber::FESystem<3>[FE_RaviartThomas<3>(1)^2-FE_Q<3>(1)^2]
+DEAL:Renumber::[ 36 36 8 8 ]
+DEAL:Renumber::[ 72 80 73 81 74 82 75 83 76 84 77 85 78 86 79 87 0 1 2 3 36 37 38 39 4 5 6 7 40 41 42 43 8 9 10 11 44 45 46 47 12 13 14 15 48 49 50 51 16 17 18 19 52 53 54 55 20 21 22 23 56 57 58 59 24 25 26 27 28 29 30 31 32 33 34 35 60 61 62 63 64 65 66 67 68 69 70 71 ]
+DEAL:Renumber::[ 0 36 72 80 ]
+DEAL:Renumber::[ 72 80 73 81 74 82 75 83 76 84 77 85 78 86 79 87 0 1 2 3 36 37 38 39 4 5 6 7 40 41 42 43 8 9 10 11 44 45 46 47 12 13 14 15 48 49 50 51 16 17 18 19 52 53 54 55 20 21 22 23 56 57 58 59 24 25 26 27 28 29 30 31 32 33 34 35 60 61 62 63 64 65 66 67 68 69 70 71 ]
+DEAL:Renumber::FESystem<3>[FE_Nedelec<3>(1)-FE_Q<3>(1)]
+DEAL:Renumber::[ 54 8 ]
+DEAL:Renumber::[ 54 55 56 57 58 59 60 61 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 ]
+DEAL:Renumber::[ 0 54 ]
+DEAL:Renumber::[ 54 55 56 57 58 59 60 61 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 ]

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.