From b5966304f2373021697f9d0b152a06431fcb58b9 Mon Sep 17 00:00:00 2001 From: Guido Kanschat Date: Fri, 23 Aug 2013 04:49:54 +0000 Subject: [PATCH] check local renumbering git-svn-id: https://svn.dealii.org/trunk@30446 0785d39b-7218-0410-832d-ea1e28bc413d --- tests/fe/fe_tools_block_renumbering.cc | 100 +++++++++++++++ .../fe/fe_tools_block_renumbering/cmp/generic | 121 ++++++++++++++++++ 2 files changed, 221 insertions(+) create mode 100644 tests/fe/fe_tools_block_renumbering.cc create mode 100644 tests/fe/fe_tools_block_renumbering/cmp/generic diff --git a/tests/fe/fe_tools_block_renumbering.cc b/tests/fe/fe_tools_block_renumbering.cc new file mode 100644 index 0000000000..26bec83710 --- /dev/null +++ b/tests/fe/fe_tools_block_renumbering.cc @@ -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 +#include +#include + +#include + +#include +#include +#include +#include +#include +#include + +#include + +void logvec (const std::vector& v, const std::vector& w) +{ + deallog << '['; + for (unsigned int i=0; i +void test_renumbering(const FiniteElement &fe) +{ + std::vector v(fe.dofs_per_cell); + std::vector 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 +void test_renumbering() +{ + deallog.push("Renumber"); + + FE_Q q1(1); + FE_Q q3(3); + FE_DGQ dg1(1); + FE_RaviartThomas rt1(1); + FE_Nedelec n1(1); + test_renumbering(q1); + test_renumbering(q3); + test_renumbering(dg1); + test_renumbering(rt1); + test_renumbering(n1); + + FESystem q1_3(q1,3); + test_renumbering(q1_3); + FESystem q3_3(q3,3); + test_renumbering(q3_3); + FESystem q3_2_q1_3(q3, 2, q1, 3); + test_renumbering(q3_2_q1_3); + test_renumbering(FESystem(rt1,1,dg1,1)); + test_renumbering(FESystem(rt1,1,q1,1)); + test_renumbering(FESystem(rt1,2,q1,2)); + test_renumbering(FESystem(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 index 0000000000..00fcbe30cf --- /dev/null +++ b/tests/fe/fe_tools_block_renumbering/cmp/generic @@ -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 ] -- 2.39.5