From: Guido Kanschat Date: Thu, 30 Mar 2006 16:01:32 +0000 (+0000) Subject: component/block indices fixed X-Git-Tag: v8.0.0~11943 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa4f18cf5bd4d3f0e8dd06522095cb2b29f9971d;p=dealii.git component/block indices fixed git-svn-id: https://svn.dealii.org/trunk@12775 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/include/fe/fe.h b/deal.II/deal.II/include/fe/fe.h index b1671063ed..da31faf488 100644 --- a/deal.II/deal.II/include/fe/fe.h +++ b/deal.II/deal.II/include/fe/fe.h @@ -1184,10 +1184,10 @@ class FiniteElement : public Subscriptor, unsigned int first_block_of_base(unsigned int b) const; /** - * Given a vector component, - * return an index which base + * For each vector component, + * return which base * element implements this - * component, and which vector + * component and which vector * component in this base element * this is. This information is * only of interest for @@ -1207,7 +1207,7 @@ class FiniteElement : public Subscriptor, * is always equal to a pair of * zeros. */ - std::pair + std::pair component_to_base_index (const unsigned int component) const; @@ -1907,17 +1907,17 @@ class FiniteElement : public Subscriptor, * The base element establishing * a component. * - * This table converts a - * component number to a pair - * consisting of the - * @p base_element number, and - * the component within this base - * element. While component - * information contains - * multiplicity of base elements, - * the result allows access to - * shape functions of the base - * element. + * For each component number + * c, the entries have + * the following meaning: + *
+ *
table[c].first.first
+ *
Number of the base element for c. + *
table[c].first.second
+ *
Component in the base element for c. + *
table[c].second
+ *
Multiple of the base element for c. + *
* * This variable is set to the * correct size by the @@ -1930,7 +1930,7 @@ class FiniteElement : public Subscriptor, * case, the initialization by * the base class is sufficient. */ - std::vector > component_to_base_table; + std::vector, unsigned int> > component_to_base_table; /** * Projection matrices are @@ -2273,7 +2273,7 @@ FiniteElement::component_to_base_index (const unsigned int index) const Assert(index < component_to_base_table.size(), ExcIndexRange(index, 0, component_to_base_table.size())); - return component_to_base_table[index]; + return component_to_base_table[index].first; } diff --git a/deal.II/deal.II/source/fe/fe.cc b/deal.II/deal.II/source/fe/fe.cc index f07aab84be..29f656b918 100644 --- a/deal.II/deal.II/source/fe/fe.cc +++ b/deal.II/deal.II/source/fe/fe.cc @@ -116,7 +116,7 @@ FiniteElement::FiniteElement ( system_to_base_table(this->dofs_per_cell), face_system_to_base_table(this->dofs_per_face), component_to_base_table (this->components, - std::make_pair(0U, 0U)), + std::make_pair(std::make_pair(0U, 0U), 0U)), restriction_is_additive_flags(r_i_a_f), nonzero_components (nonzero_c) { @@ -319,20 +319,16 @@ FiniteElement::get_prolongation_matrix (const unsigned int child) const } +//TODO:[GK] This is probably not the most efficient way of doing this. template unsigned int FiniteElement::component_to_block_index (const unsigned int index) const { Assert (index < this->n_components(), ExcIndexRange(index, 0, this->n_components())); - // The block is computed simply as - // first block of this base plus - // the index within the base blocks - const std::pair - base = component_to_base_index(index); - // Integer division used on purpose! - const unsigned int block_in_base = base.second / base_element(base.first).n_components(); - return first_block_of_base(base.first) + block_in_base; + + return first_block_of_base(component_to_base_table[index].first.first) + + component_to_base_table[index].second; } diff --git a/deal.II/deal.II/source/fe/fe_system.cc b/deal.II/deal.II/source/fe/fe_system.cc index 5bde2b70eb..0721506226 100644 --- a/deal.II/deal.II/source/fe/fe_system.cc +++ b/deal.II/deal.II/source/fe/fe_system.cc @@ -995,7 +995,7 @@ FESystem::build_cell_tables() for (unsigned int m = 0; m < element_multiplicity(base); ++m) for (unsigned int k=0; kcomponent_to_base_table[total_index++] - = std::make_pair(base,k); + = std::make_pair(std::make_pair(base,k), m); Assert (total_index == this->component_to_base_table.size(), ExcInternalError()); diff --git a/tests/fe/interpolate_system.cc b/tests/fe/interpolate_system.cc index e1c896ab9f..f3c1a143d1 100644 --- a/tests/fe/interpolate_system.cc +++ b/tests/fe/interpolate_system.cc @@ -2,7 +2,7 @@ // $Id$ // Version: $Name$ // -// Copyright (C) 2005 by the deal.II authors +// Copyright (C) 2005, 2006 by the deal.II authors // // This file is subject to QPL and may not be distributed // without copyright and license information. Please refer @@ -87,7 +87,7 @@ int main() { std::ofstream logfile ("interpolate_system/output"); deallog.attach(logfile); - deallog.depth_console(0); +// deallog.depth_console(0); deallog.threshold_double(1.e-15); Q1WedgeFunction<1,1,2> w1; diff --git a/tests/fe/shapes.cc b/tests/fe/shapes.cc index 065ec49162..97e064d824 100644 --- a/tests/fe/shapes.cc +++ b/tests/fe/shapes.cc @@ -264,9 +264,12 @@ check_values_and_derivatives (const FiniteElement &fe, { for (unsigned int c=0; c 1e-13) + deallog << " values differ v" << i << "(x" << x << ") diff " << diff + << std::endl; }; // test something about the @@ -319,7 +322,9 @@ check_values_and_derivatives (const FiniteElement &fe, { const double diff=std::fabs(tmp[j][k]); if (diff>max_diff) max_diff=diff; - Assert (std::fabs(tmp[j][k]) < 1e-6, ExcInternalError()); + const double tmpabs = std::fabs(tmp[j][k]); + if (tmpabs > 1.e-6) + deallog << "Second derivatives differ " << tmpabs << std::endl; } }; diff --git a/tests/fe/system_index.cc b/tests/fe/system_index.cc index 5ad030b733..6901f13766 100644 --- a/tests/fe/system_index.cc +++ b/tests/fe/system_index.cc @@ -1,4 +1,4 @@ -//---------------------------- system_1.cc --------------------------- +//---------------------------------------------------------------------- // system_1.cc,v 1.3 2003/06/09 21:55:00 wolf Exp // Version: // @@ -9,7 +9,7 @@ // to the file deal.II/doc/license.html for the text and // fuqher information on this license. // -//---------------------------- system_1.cc --------------------------- +//---------------------------------------------------------------------- // Test the various index conversion methods @@ -101,7 +101,7 @@ check_fe(const FiniteElement &fe) deallog << std::setw(3) << 'x'; deallog << std::endl; - if (fe.is_primitive()) + if (true || fe.is_primitive()) { deallog << "Next two lines: component_to_base" << std::endl; for (unsigned int i=0;i(); diff --git a/tests/fe/system_index/cmp/generic b/tests/fe/system_index/cmp/generic index 754989ea03..7db36b1164 100644 --- a/tests/fe/system_index/cmp/generic +++ b/tests/fe/system_index/cmp/generic @@ -1,4 +1,4 @@ -JobId unknown Tue Mar 28 15:59:39 2006 + DEAL::FESystem<2>[FE_Q<2>(1)-FE_DGQ<2>(0)] DEAL::Base elements: 2 DEAL::Multiplicities: 1 1 @@ -38,7 +38,7 @@ DEAL::0 1 0 1 0 1 0 1 2 3 4 DEAL::0 0 1 1 2 2 3 3 0 0 0 DEAL::Next two lines: component_to_base DEAL::0 0 1 1 1 -DEAL::0 1 0 1 2 +DEAL::0 0 0 0 0 DEAL::Next line: component_to_block_index DEAL::0 1 2 3 4 DEAL::FESystem<2>[FE_DGQ<2>(1)^2-FE_DGQ<2>(0)^3] @@ -59,7 +59,7 @@ DEAL::0 0 0 0 1 1 1 1 2 3 4 DEAL::0 1 2 3 0 1 2 3 0 0 0 DEAL::Next two lines: component_to_base DEAL::0 0 1 1 1 -DEAL::0 1 0 1 2 +DEAL::0 0 0 0 0 DEAL::Next line: component_to_block_index DEAL::0 1 2 3 4 DEAL::FESystem<2>[FE_RaviartThomas<2>(1)-FE_DGQ<2>(1)] @@ -78,6 +78,11 @@ DEAL::0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 DEAL::Next two lines: component index_in_component DEAL::x x x x x x x x x x x x 2 2 2 2 DEAL::x x x x x x x x x x x x 0 1 2 3 +DEAL::Next two lines: component_to_base +DEAL::0 0 1 +DEAL::0 1 0 +DEAL::Next line: component_to_block_index +DEAL::0 0 1 DEAL::FESystem<2>[FE_RaviartThomas<2>(0)^2-FE_DGQ<2>(0)^3] DEAL::Base elements: 2 DEAL::Multiplicities: 2 3 @@ -94,6 +99,11 @@ DEAL::0 0 1 1 2 2 3 3 0 0 0 DEAL::Next two lines: component index_in_component DEAL::x x x x x x x x 4 5 6 DEAL::x x x x x x x x 0 0 0 +DEAL::Next two lines: component_to_base +DEAL::0 0 0 0 1 1 1 +DEAL::0 1 0 1 0 0 0 +DEAL::Next line: component_to_block_index +DEAL::0 0 1 1 2 3 4 DEAL::FESystem<2>[FE_RaviartThomas<2>(1)^2-FE_DGQ<2>(0)^3] DEAL::Base elements: 2 DEAL::Multiplicities: 2 3 @@ -110,14 +120,19 @@ DEAL::0 1 0 1 2 3 2 3 4 5 4 5 6 7 6 7 8 9 10 11 8 9 10 11 0 DEAL::Next two lines: component index_in_component DEAL::x x x x x x x x x x x x x x x x x x x x x x x x 4 5 6 DEAL::x x x x x x x x x x x x x x x x x x x x x x x x 0 0 0 +DEAL::Next two lines: component_to_base +DEAL::0 0 0 0 1 1 1 +DEAL::0 1 0 1 0 0 0 +DEAL::Next line: component_to_block_index +DEAL::0 0 1 1 2 3 4 DEAL::FESystem<2>[FE_Q<2>(1)^2-FE_Q<2>(2)-FE_DGQ<2>(0)^2] DEAL::Base elements: 3 DEAL::Multiplicities: 2 1 2 -DEAL::First block : 0 2 1 +DEAL::First block : 0 2 3 DEAL::Blocks : 5 DEAL::0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 DEAL::Next two lines: block index_in_block -DEAL::0 1 2 0 1 2 0 1 2 0 1 2 2 2 2 2 2 1 2 +DEAL::0 1 2 0 1 2 0 1 2 0 1 2 2 2 2 2 2 3 4 DEAL::0 0 0 1 1 1 2 2 2 3 3 3 4 5 6 7 8 0 0 DEAL::Next three lines: base block_in_base index_in_block DEAL::0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 1 2 2 @@ -128,17 +143,17 @@ DEAL::0 1 2 0 1 2 0 1 2 0 1 2 2 2 2 2 2 3 4 DEAL::0 0 0 1 1 1 2 2 2 3 3 3 4 5 6 7 8 0 0 DEAL::Next two lines: component_to_base DEAL::0 0 1 2 2 -DEAL::0 1 0 0 1 +DEAL::0 0 0 0 0 DEAL::Next line: component_to_block_index -DEAL::0 1 2 1 2 +DEAL::0 1 2 3 4 DEAL::FESystem<2>[FE_RaviartThomas<2>(1)^2-FE_Q<2>(2)-FE_DGQ<2>(0)^2] DEAL::Base elements: 3 DEAL::Multiplicities: 2 1 2 -DEAL::First block : 0 2 1 +DEAL::First block : 0 2 3 DEAL::Blocks : 5 DEAL::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 DEAL::Next two lines: block index_in_block -DEAL::2 2 2 2 0 0 1 1 2 0 0 1 1 2 0 0 1 1 2 0 0 1 1 2 0 0 0 0 1 1 1 1 2 1 2 +DEAL::2 2 2 2 0 0 1 1 2 0 0 1 1 2 0 0 1 1 2 0 0 1 1 2 0 0 0 0 1 1 1 1 2 3 4 DEAL::0 1 2 3 0 1 0 1 4 2 3 2 3 5 4 5 4 5 6 6 7 6 7 7 8 9 10 11 8 9 10 11 8 0 0 DEAL::Next three lines: base block_in_base index_in_block DEAL::1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 2 2 @@ -147,6 +162,11 @@ DEAL::0 1 2 3 0 1 0 1 4 2 3 2 3 5 4 5 4 5 6 6 7 6 7 7 8 DEAL::Next two lines: component index_in_component DEAL::4 4 4 4 x x x x 4 x x x x 4 x x x x 4 x x x x 4 x x x x x x x x 4 5 6 DEAL::0 1 2 3 x x x x 4 x x x x 5 x x x x 6 x x x x 7 x x x x x x x x 8 0 0 +DEAL::Next two lines: component_to_base +DEAL::0 0 0 0 1 2 2 +DEAL::0 1 0 1 0 0 0 +DEAL::Next line: component_to_block_index +DEAL::0 0 1 1 2 3 4 DEAL::FESystem<2>[FE_RaviartThomas<2>(2)-FE_Q<2>(2)] DEAL::Base elements: 2 DEAL::Multiplicities: 1 1 @@ -163,6 +183,11 @@ DEAL::0 1 2 3 0 1 2 4 3 4 5 5 6 7 8 6 9 10 11 7 12 13 14 15 16 DEAL::Next two lines: component index_in_component DEAL::2 2 2 2 x x x 2 x x x 2 x x x 2 x x x 2 x x x x x x x x x x x x 2 DEAL::0 1 2 3 x x x 4 x x x 5 x x x 6 x x x 7 x x x x x x x x x x x x 8 +DEAL::Next two lines: component_to_base +DEAL::0 0 1 +DEAL::0 1 0 +DEAL::Next line: component_to_block_index +DEAL::0 0 1 DEAL::FESystem<3>[FE_Q<3>(1)-FE_DGQ<3>(0)] DEAL::Base elements: 2 DEAL::Multiplicities: 1 1 @@ -202,7 +227,7 @@ DEAL::0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 2 3 4 DEAL::0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 0 0 0 DEAL::Next two lines: component_to_base DEAL::0 0 1 1 1 -DEAL::0 1 0 1 2 +DEAL::0 0 0 0 0 DEAL::Next line: component_to_block_index DEAL::0 1 2 3 4 DEAL::FESystem<3>[FE_DGQ<3>(1)^2-FE_DGQ<3>(0)^3] @@ -223,7 +248,7 @@ DEAL::0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 3 4 DEAL::0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 0 0 DEAL::Next two lines: component_to_base DEAL::0 0 1 1 1 -DEAL::0 1 0 1 2 +DEAL::0 0 0 0 0 DEAL::Next line: component_to_block_index DEAL::0 1 2 3 4 DEAL::FESystem<3>[FE_RaviartThomas<3>(1)-FE_DGQ<3>(1)] @@ -242,6 +267,11 @@ DEAL::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 DEAL::Next two lines: component index_in_component DEAL::x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 3 3 3 3 3 3 3 3 DEAL::x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 0 1 2 3 4 5 6 7 +DEAL::Next two lines: component_to_base +DEAL::0 0 0 1 +DEAL::0 1 2 0 +DEAL::Next line: component_to_block_index +DEAL::0 0 0 1 DEAL::FESystem<3>[FE_RaviartThomas<3>(0)^2-FE_DGQ<3>(0)^3] DEAL::Base elements: 2 DEAL::Multiplicities: 2 3 @@ -258,6 +288,11 @@ DEAL::0 0 1 1 2 2 3 3 4 4 5 5 0 0 0 DEAL::Next two lines: component index_in_component DEAL::x x x x x x x x x x x x 6 7 8 DEAL::x x x x x x x x x x x x 0 0 0 +DEAL::Next two lines: component_to_base +DEAL::0 0 0 0 0 0 1 1 1 +DEAL::0 1 2 0 1 2 0 0 0 +DEAL::Next line: component_to_block_index +DEAL::0 0 0 1 1 1 2 3 4 DEAL::FESystem<3>[FE_RaviartThomas<3>(1)^2-FE_DGQ<3>(0)^3] DEAL::Base elements: 2 DEAL::Multiplicities: 2 3 @@ -274,14 +309,19 @@ DEAL::0 1 2 3 0 1 2 3 4 5 6 7 4 5 6 7 8 9 10 11 8 9 10 11 12 DEAL::Next two lines: component index_in_component DEAL::x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 6 7 8 DEAL::x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 0 0 0 +DEAL::Next two lines: component_to_base +DEAL::0 0 0 0 0 0 1 1 1 +DEAL::0 1 2 0 1 2 0 0 0 +DEAL::Next line: component_to_block_index +DEAL::0 0 0 1 1 1 2 3 4 DEAL::FESystem<3>[FE_Q<3>(1)^2-FE_Q<3>(2)-FE_DGQ<3>(0)^2] DEAL::Base elements: 3 DEAL::Multiplicities: 2 1 2 -DEAL::First block : 0 2 1 +DEAL::First block : 0 2 3 DEAL::Blocks : 5 DEAL::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 DEAL::Next two lines: block index_in_block -DEAL::0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 +DEAL::0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 4 DEAL::0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 0 0 DEAL::Next three lines: base block_in_base index_in_block DEAL::0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 @@ -292,17 +332,17 @@ DEAL::0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 2 DEAL::0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 0 0 DEAL::Next two lines: component_to_base DEAL::0 0 1 2 2 -DEAL::0 1 0 0 1 +DEAL::0 0 0 0 0 DEAL::Next line: component_to_block_index -DEAL::0 1 2 1 2 +DEAL::0 1 2 3 4 DEAL::FESystem<3>[FE_RaviartThomas<3>(1)^2-FE_Q<3>(2)-FE_DGQ<3>(0)^2] DEAL::Base elements: 3 DEAL::Multiplicities: 2 1 2 -DEAL::First block : 0 2 1 +DEAL::First block : 0 2 3 DEAL::Blocks : 5 DEAL::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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 DEAL::Next two lines: block index_in_block -DEAL::2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 1 1 1 1 2 0 0 0 0 1 1 1 1 2 0 0 0 0 1 1 1 1 2 0 0 0 0 1 1 1 1 2 0 0 0 0 1 1 1 1 2 0 0 0 0 1 1 1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 +DEAL::2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 1 1 1 1 2 0 0 0 0 1 1 1 1 2 0 0 0 0 1 1 1 1 2 0 0 0 0 1 1 1 1 2 0 0 0 0 1 1 1 1 2 0 0 0 0 1 1 1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 2 3 4 DEAL::0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 0 1 2 3 0 1 2 3 20 4 5 6 7 4 5 6 7 21 8 9 10 11 8 9 10 11 22 12 13 14 15 12 13 14 15 23 16 17 18 19 16 17 18 19 24 20 21 22 23 20 21 22 23 25 24 25 26 27 28 29 30 31 32 33 34 35 24 25 26 27 28 29 30 31 32 33 34 35 26 0 0 DEAL::Next three lines: base block_in_base index_in_block DEAL::1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 @@ -311,6 +351,11 @@ DEAL::0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 0 1 2 3 0 DEAL::Next two lines: component index_in_component DEAL::6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 x x x x x x x x 6 x x x x x x x x 6 x x x x x x x x 6 x x x x x x x x 6 x x x x x x x x 6 x x x x x x x x 6 x x x x x x x x x x x x x x x x x x x x x x x x 6 7 8 DEAL::0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 x x x x x x x x 20 x x x x x x x x 21 x x x x x x x x 22 x x x x x x x x 23 x x x x x x x x 24 x x x x x x x x 25 x x x x x x x x x x x x x x x x x x x x x x x x 26 0 0 +DEAL::Next two lines: component_to_base +DEAL::0 0 0 0 0 0 1 2 2 +DEAL::0 1 2 0 1 2 0 0 0 +DEAL::Next line: component_to_block_index +DEAL::0 0 0 1 1 1 2 3 4 DEAL::FESystem<3>[FE_RaviartThomas<3>(2)-FE_Q<3>(2)] DEAL::Base elements: 2 DEAL::Multiplicities: 1 1 @@ -327,3 +372,8 @@ DEAL::0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 0 1 2 3 4 DEAL::Next two lines: component index_in_component DEAL::3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 x x x x x x x x x 3 x x x x x x x x x 3 x x x x x x x x x 3 x x x x x x x x x 3 x x x x x x x x x 3 x x x x x x x x x 3 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 3 DEAL::0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 x x x x x x x x x 20 x x x x x x x x x 21 x x x x x x x x x 22 x x x x x x x x x 23 x x x x x x x x x 24 x x x x x x x x x 25 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 26 +DEAL::Next two lines: component_to_base +DEAL::0 0 0 1 +DEAL::0 1 2 0 +DEAL::Next line: component_to_block_index +DEAL::0 0 0 1