From 3f42c46d1530c3bdce6c65b08d11e79bda52e8d3 Mon Sep 17 00:00:00 2001 From: heltai Date: Fri, 11 Apr 2014 13:03:21 +0000 Subject: [PATCH] Merged from trunk r32657 through r32762 git-svn-id: https://svn.dealii.org/branches/branch_manifold_id_intermediate@32766 0785d39b-7218-0410-832d-ea1e28bc413d --- .../muparser_v2_2_3/src/muParserBytecode.cpp | 1 + deal.II/doc/external-libs/petsc.html | 28 +- deal.II/doc/news/changes.h | 70 +- deal.II/doc/publications/index.html | 16 +- deal.II/examples/step-22/step-22.cc | 6 +- deal.II/examples/step-31/doc/intro.dox | 2 +- deal.II/examples/step-37/step-37.cc | 32 +- deal.II/examples/step-40/step-40.cc | 4 +- deal.II/include/deal.II/algorithms/any_data.h | 4 +- deal.II/include/deal.II/base/aligned_vector.h | 84 +- deal.II/include/deal.II/base/config.h.in | 2 +- deal.II/include/deal.II/base/data_out_base.h | 34 +- .../include/deal.II/base/memory_consumption.h | 24 +- deal.II/include/deal.II/base/parallel.h | 12 +- deal.II/include/deal.II/base/table.h | 324 +- deal.II/include/deal.II/base/time_stepping.h | 2 +- .../deal.II/base/time_stepping.templates.h | 2 +- deal.II/include/deal.II/dofs/dof_accessor.h | 22 +- .../deal.II/dofs/dof_accessor.templates.h | 28 - deal.II/include/deal.II/dofs/dof_tools.h | 27 +- deal.II/include/deal.II/fe/fe.h | 23 +- deal.II/include/deal.II/fe/fe_base.h | 2 +- deal.II/include/deal.II/fe/fe_bdm.h | 2 +- deal.II/include/deal.II/fe/fe_dgp.h | 3 +- deal.II/include/deal.II/fe/fe_dgq.h | 3 +- deal.II/include/deal.II/fe/fe_face.h | 11 +- deal.II/include/deal.II/fe/fe_nedelec.h | 3 +- deal.II/include/deal.II/fe/fe_q_base.h | 3 +- deal.II/include/deal.II/fe/fe_q_dg0.h | 9 + .../include/deal.II/fe/fe_q_hierarchical.h | 3 +- .../include/deal.II/fe/fe_raviart_thomas.h | 7 +- deal.II/include/deal.II/fe/fe_system.h | 5 +- deal.II/include/deal.II/fe/mapping.h | 7 +- deal.II/include/deal.II/grid/grid_generator.h | 15 +- deal.II/include/deal.II/grid/grid_tools.h | 15 +- deal.II/include/deal.II/grid/tria_accessor.h | 75 +- .../deal.II/grid/tria_accessor.templates.h | 64 +- deal.II/include/deal.II/grid/tria_iterator.h | 18 +- deal.II/include/deal.II/grid/tria_levels.h | 7 +- .../deal.II/lac/constraint_matrix.templates.h | 2 +- .../include/deal.II/lac/lapack_full_matrix.h | 111 +- deal.II/include/deal.II/lac/pointer_matrix.h | 80 +- deal.II/include/deal.II/lac/sparse_matrix.h | 3 +- .../deal.II/lac/sparse_matrix.templates.h | 4 +- .../include/deal.II/lac/sparse_matrix_ez.h | 10 +- .../deal.II/lac/trilinos_precondition.h | 5 + .../include/deal.II/lac/vector.templates.h | 30 +- .../deal.II/matrix_free/dof_info.templates.h | 11 +- .../matrix_free/mapping_info.templates.h | 2 +- .../matrix_free/matrix_free.templates.h | 5 +- deal.II/include/deal.II/meshworker/loop.h | 15 +- .../numerics/derivative_approximation.h | 18 +- .../include/deal.II/numerics/vector_tools.h | 112 +- .../deal.II/numerics/vector_tools.templates.h | 1010 +- deal.II/source/distributed/tria.cc | 240 +- deal.II/source/dofs/dof_tools.cc | 47 +- deal.II/source/fe/fe.cc | 6 +- deal.II/source/fe/fe_bdm.cc | 2 +- deal.II/source/fe/fe_dgp.cc | 5 +- deal.II/source/fe/fe_dgq.cc | 84 +- deal.II/source/fe/fe_face.cc | 15 +- deal.II/source/fe/fe_nedelec.cc | 8 +- deal.II/source/fe/fe_q.cc | 45 +- deal.II/source/fe/fe_q_base.cc | 11 +- deal.II/source/fe/fe_q_dg0.cc | 20 + deal.II/source/fe/fe_q_hierarchical.cc | 5 +- deal.II/source/fe/fe_raviart_thomas.cc | 8 +- deal.II/source/fe/fe_system.cc | 47 +- deal.II/source/grid/grid_generator.cc | 57 +- deal.II/source/grid/grid_generator.inst.in | 3 +- deal.II/source/grid/grid_tools.cc | 5 +- deal.II/source/grid/grid_tools.inst.in | 3 +- deal.II/source/grid/tria_accessor.cc | 38 +- deal.II/source/lac/lapack_full_matrix.cc | 88 +- deal.II/source/lac/lapack_full_matrix.inst.in | 3 + deal.II/source/lac/petsc_solver.cc | 4 +- deal.II/source/lac/trilinos_precondition.cc | 6 + .../numerics/derivative_approximation.cc | 24 +- .../numerics/derivative_approximation.inst.in | 12 +- deal.II/source/numerics/solution_transfer.cc | 2 - .../numerics/vector_tools_constraints.inst.in | 103 +- tests/base/aligned_vector_01.cc | 101 + tests/base/aligned_vector_01.output | 8 + ...ctorization_03.cc => aligned_vector_02.cc} | 0 ...ion_03.output => aligned_vector_02.output} | 0 tests/base/aligned_vector_03.cc | 103 + tests/base/aligned_vector_03.output | 9 + tests/base/vectorization_01.cc | 194 +- tests/base/vectorization_01.output | 61 +- tests/base/vectorization_04.cc | 171 - tests/base/vectorization_04.output | 55 - tests/bits/find_cell_12.cc | 105 + tests/bits/find_cell_12.output | 3 + tests/deal.II/curl_curl_01.cc | 33 +- tests/deal.II/grid_transform.cc | 4 +- tests/deal.II/grid_transform_02.cc | 89 + tests/deal.II/grid_transform_02.output | 1037 ++ tests/deal.II/grid_transform_coefficient.cc | 123 + .../deal.II/grid_transform_coefficient.output | 653 + tests/deal.II/normal_flux_inhom_01.cc | 130 + tests/deal.II/normal_flux_inhom_01.output | 6076 +++++++++ tests/deal.II/tangential_flux_inhom_01.cc | 129 + tests/deal.II/tangential_flux_inhom_01.output | 11149 ++++++++++++++++ tests/distributed_grids/coarse_grid_common.h | 2 +- tests/fail/merge_triangulations_02.cc | 115 + tests/fail/merge_triangulations_02.output | 121 + tests/fe/bdm_1.cc | 102 + tests/fe/bdm_1.output | 73 + tests/fe/bdm_10.cc | 103 + tests/fe/bdm_10.output | 109 + tests/fe/bdm_11.cc | 109 + tests/fe/bdm_11.output | 67 + tests/fe/bdm_12.cc | 102 + tests/fe/bdm_12.output | 109 + tests/fe/bdm_13.cc | 107 + tests/fe/bdm_13.output | 67 + tests/fe/bdm_14.cc | 107 + tests/fe/bdm_14.output | 67 + tests/fe/bdm_15.cc | 107 + tests/fe/bdm_15.output | 67 + tests/fe/bdm_2.cc | 179 + tests/fe/bdm_2.output | 301 + tests/fe/bdm_3.cc | 70 + tests/fe/bdm_3.output | 25 + tests/fe/bdm_5.cc | 74 + tests/fe/bdm_5.output | 192 + tests/fe/bdm_8.cc | 116 + tests/fe/bdm_8.output | 54 + tests/fe/bdm_9.cc | 107 + tests/fe/bdm_9.output | 54 + tests/fe/element_constant_modes.cc | 6 +- tests/fe/element_constant_modes.output | 36 + tests/fe/get_name_01.cc | 77 + tests/fe/get_name_01.output | 6 + tests/grid/ordering_01.cc | 89 - tests/grid/ordering_01.output | 626 - tests/lac/pointer_matrix_01.cc | 46 + tests/lac/pointer_matrix_01.output | 3 + tests/lac/pointer_matrix_02.cc | 52 + tests/lac/pointer_matrix_02.output | 3 + tests/lac/pointer_matrix_03.cc | 49 + tests/lac/pointer_matrix_03.output | 3 + tests/lac/pointer_matrix_04.cc | 54 + tests/lac/pointer_matrix_04.output | 3 + tests/lac/pointer_matrix_05.cc | 74 + tests/lac/pointer_matrix_05.output | 5 + tests/lac/pointer_matrix_06.cc | 74 + tests/lac/pointer_matrix_06.output | 5 + tests/lac/pointer_matrix_07.cc | 83 + tests/lac/pointer_matrix_07.output | 6 + tests/lac/pointer_matrix_08.cc | 83 + tests/lac/pointer_matrix_08.output | 6 + tests/lac/pointer_matrix_09.cc | 81 + tests/lac/pointer_matrix_09.output | 9 + tests/lac/pointer_matrix_10.cc | 113 + tests/lac/pointer_matrix_10.output | 14 + tests/lac/shifted_matrix_01.cc | 73 + tests/lac/shifted_matrix_01.output | 5 + tests/lac/shifted_matrix_02.cc | 71 + tests/lac/shifted_matrix_02.output | 4 + tests/lac/shifted_matrix_03.cc | 81 + tests/lac/shifted_matrix_03.output | 7 + tests/lac/shifted_matrix_04.cc | 88 + tests/lac/shifted_matrix_04.output | 10 + tests/lac/shifted_matrix_05.cc | 97 + tests/lac/shifted_matrix_05.output | 14 + tests/lac/vector_view_01.cc | 72 + tests/lac/vector_view_01.output | 6 + tests/lac/vector_view_02.cc | 86 + tests/lac/vector_view_02.output | 25 + tests/lac/vector_view_03.cc | 100 + tests/lac/vector_view_03.output | 13 + tests/lac/vector_view_04.cc | 104 + tests/lac/vector_view_04.output | 16 + tests/lac/vector_view_05.cc | 76 + tests/lac/vector_view_05.output | 9 + tests/lapack/full_matrix_00.cc | 113 + tests/lapack/full_matrix_00.output | 7 + tests/mpi/extract_constant_modes_02.cc | 104 + .../extract_constant_modes_02.mpirun=4.output | 4 + tests/mpi/mesh_worker_05.cc | 230 + tests/mpi/mesh_worker_05.mpirun=3.output | 98 + tests/mpi/torus.cc | 118 + tests/mpi/torus.mpirun=2.output | 21 + 184 files changed, 27021 insertions(+), 2484 deletions(-) create mode 100644 tests/base/aligned_vector_01.cc create mode 100644 tests/base/aligned_vector_01.output rename tests/base/{vectorization_03.cc => aligned_vector_02.cc} (100%) rename tests/base/{vectorization_03.output => aligned_vector_02.output} (100%) create mode 100644 tests/base/aligned_vector_03.cc create mode 100644 tests/base/aligned_vector_03.output delete mode 100644 tests/base/vectorization_04.cc delete mode 100644 tests/base/vectorization_04.output create mode 100644 tests/bits/find_cell_12.cc create mode 100644 tests/bits/find_cell_12.output create mode 100644 tests/deal.II/grid_transform_02.cc create mode 100644 tests/deal.II/grid_transform_02.output create mode 100644 tests/deal.II/grid_transform_coefficient.cc create mode 100644 tests/deal.II/grid_transform_coefficient.output create mode 100644 tests/deal.II/normal_flux_inhom_01.cc create mode 100644 tests/deal.II/normal_flux_inhom_01.output create mode 100644 tests/deal.II/tangential_flux_inhom_01.cc create mode 100644 tests/deal.II/tangential_flux_inhom_01.output create mode 100644 tests/fail/merge_triangulations_02.cc create mode 100644 tests/fail/merge_triangulations_02.output create mode 100644 tests/fe/bdm_1.cc create mode 100644 tests/fe/bdm_1.output create mode 100644 tests/fe/bdm_10.cc create mode 100644 tests/fe/bdm_10.output create mode 100644 tests/fe/bdm_11.cc create mode 100644 tests/fe/bdm_11.output create mode 100644 tests/fe/bdm_12.cc create mode 100644 tests/fe/bdm_12.output create mode 100644 tests/fe/bdm_13.cc create mode 100644 tests/fe/bdm_13.output create mode 100644 tests/fe/bdm_14.cc create mode 100644 tests/fe/bdm_14.output create mode 100644 tests/fe/bdm_15.cc create mode 100644 tests/fe/bdm_15.output create mode 100644 tests/fe/bdm_2.cc create mode 100644 tests/fe/bdm_2.output create mode 100644 tests/fe/bdm_3.cc create mode 100644 tests/fe/bdm_3.output create mode 100644 tests/fe/bdm_5.cc create mode 100644 tests/fe/bdm_5.output create mode 100644 tests/fe/bdm_8.cc create mode 100644 tests/fe/bdm_8.output create mode 100644 tests/fe/bdm_9.cc create mode 100644 tests/fe/bdm_9.output create mode 100644 tests/fe/get_name_01.cc create mode 100644 tests/fe/get_name_01.output delete mode 100644 tests/grid/ordering_01.cc delete mode 100644 tests/grid/ordering_01.output create mode 100644 tests/lac/pointer_matrix_01.cc create mode 100644 tests/lac/pointer_matrix_01.output create mode 100644 tests/lac/pointer_matrix_02.cc create mode 100644 tests/lac/pointer_matrix_02.output create mode 100644 tests/lac/pointer_matrix_03.cc create mode 100644 tests/lac/pointer_matrix_03.output create mode 100644 tests/lac/pointer_matrix_04.cc create mode 100644 tests/lac/pointer_matrix_04.output create mode 100644 tests/lac/pointer_matrix_05.cc create mode 100644 tests/lac/pointer_matrix_05.output create mode 100644 tests/lac/pointer_matrix_06.cc create mode 100644 tests/lac/pointer_matrix_06.output create mode 100644 tests/lac/pointer_matrix_07.cc create mode 100644 tests/lac/pointer_matrix_07.output create mode 100644 tests/lac/pointer_matrix_08.cc create mode 100644 tests/lac/pointer_matrix_08.output create mode 100644 tests/lac/pointer_matrix_09.cc create mode 100644 tests/lac/pointer_matrix_09.output create mode 100644 tests/lac/pointer_matrix_10.cc create mode 100644 tests/lac/pointer_matrix_10.output create mode 100644 tests/lac/shifted_matrix_01.cc create mode 100644 tests/lac/shifted_matrix_01.output create mode 100644 tests/lac/shifted_matrix_02.cc create mode 100644 tests/lac/shifted_matrix_02.output create mode 100644 tests/lac/shifted_matrix_03.cc create mode 100644 tests/lac/shifted_matrix_03.output create mode 100644 tests/lac/shifted_matrix_04.cc create mode 100644 tests/lac/shifted_matrix_04.output create mode 100644 tests/lac/shifted_matrix_05.cc create mode 100644 tests/lac/shifted_matrix_05.output create mode 100644 tests/lac/vector_view_01.cc create mode 100644 tests/lac/vector_view_01.output create mode 100644 tests/lac/vector_view_02.cc create mode 100644 tests/lac/vector_view_02.output create mode 100644 tests/lac/vector_view_03.cc create mode 100644 tests/lac/vector_view_03.output create mode 100644 tests/lac/vector_view_04.cc create mode 100644 tests/lac/vector_view_04.output create mode 100644 tests/lac/vector_view_05.cc create mode 100644 tests/lac/vector_view_05.output create mode 100644 tests/lapack/full_matrix_00.cc create mode 100644 tests/lapack/full_matrix_00.output create mode 100644 tests/mpi/extract_constant_modes_02.cc create mode 100644 tests/mpi/extract_constant_modes_02.mpirun=4.output create mode 100644 tests/mpi/mesh_worker_05.cc create mode 100644 tests/mpi/mesh_worker_05.mpirun=3.output create mode 100644 tests/mpi/torus.cc create mode 100644 tests/mpi/torus.mpirun=2.output diff --git a/deal.II/bundled/muparser_v2_2_3/src/muParserBytecode.cpp b/deal.II/bundled/muparser_v2_2_3/src/muParserBytecode.cpp index e0cb6f218e..c01bcba60b 100644 --- a/deal.II/bundled/muparser_v2_2_3/src/muParserBytecode.cpp +++ b/deal.II/bundled/muparser_v2_2_3/src/muParserBytecode.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include "muParserDef.h" #include "muParserError.h" diff --git a/deal.II/doc/external-libs/petsc.html b/deal.II/doc/external-libs/petsc.html index 252e88222a..3230d590f5 100644 --- a/deal.II/doc/external-libs/petsc.html +++ b/deal.II/doc/external-libs/petsc.html @@ -4,7 +4,7 @@ The deal.II Readme on interfacing to PETSc - + @@ -37,21 +37,27 @@

Installing deal.II with PETSc

-

Note: The latest version of PETSc tested is - 3.4.2. Major releases after this version may cause problems, so we - recommend sticking to this version if at all possible. +

Note: The most recent version of + PETSc that has been reported to be compatible + with deal.II is version 3.4. If you use a + later version than this and encounter problems, let us know.

- PETSc usually requires you to set the + When you compile and install PETSc, you need to set environment variables PETSC_DIR and PETSC_ARCH to a path to PETSc and denoting the architecture for which PETSc is - compiled (a string you can choose however you like, it is simply - intended to identify one of possibly several different PETSc - installations). If these environment variables are set, then - deal.II will pick them up during - configuration, and store them. It will then also recognize that - PETSc shall be used, and enable the wrapper classes. + compiled. PETSC_ARCH is in reality just a name you give to + your installation, it is a string you can choose however you like. The + point of it is that it allows you to have multiple possibly different + PETSc installations. A consequence of this is that you need to + let deal.II's cmake scripts know which + one of these installations you want it to use, i.e., you need to set the + PETSC_ARCH variable to the same value you used when you + installed PETSc. The same is true for PETSC_DIR. You can + this via environment variables. cmake will then also + recognize that PETSc shall be used, and enable the wrapper classes, + without you having to explicitly say that you want to use PETSc.

diff --git a/deal.II/doc/news/changes.h b/deal.II/doc/news/changes.h index 258320b307..5c2f730fe7 100644 --- a/deal.II/doc/news/changes.h +++ b/deal.II/doc/news/changes.h @@ -1,4 +1,4 @@ - // --------------------------------------------------------------------- +// --------------------------------------------------------------------- // $Id$ // // Copyright (C) 2013, 2014 by the deal.II authors @@ -56,7 +56,7 @@ inconvenience this causes. longer supported. Comparing for equality is done using '==' instead of '='.
(Timo Heister, 2014/02/10) - +

  • Changed: The various classes generating graphical output, such as DataOut or DataOutStack, are all derived from a common interface @@ -90,12 +90,11 @@ inconvenience this causes.
      - -
    1. Changed: the functionparser library bundled with deal.II got replaced - by the muparser library. +
    2. Changed: The functionparser library bundled with deal.II got replaced + by the muparser library.
      (Timo Heister, 2014/02/10) -
    3. +
    4. Changed: It was possible to call DoFAccessor::set_active_fe_index() on non-active cells. However, this made no sense: Since degrees of @@ -149,6 +148,63 @@ inconvenience this causes.

      Specific improvements

        +
      1. Changed: TableBase now uses AlignedVector for storing data + instead of std::vector, which allows its use for VectorizedArray + data fields which require more alignment. +
        + (Martin Kronbichler, 2014/04/09) +
      2. + +
      3. Improved: Piola transformation for FE_BDM is now active. +
        + (Guido Kanschat, 2014/04/09) +
      4. + +
      5. Changed: operator< for cell iterators no longer looks at + (level-)subdomain ids but only compares level() and index(). This makes the + ordering inconsistent between processes on a + parallel::distributed::Triangulation, but fixes the problem that the + ordering of cells changes under mesh refinement or other causes for changing + the subdomain id. +
        + (Timo Heister, 2014/04/08) +
      6. + +
      7. New: GridTools::laplace_transform() now takes an addition, optional + parameter that indicates the "stiffness" of the mapping. +
        + (Denis Davydov, Jean-Paul Pelteret, 2014/04/07) +
      8. + +
      9. Fixed: DoFTools::extract_constant_modes now correctly identifies both + constant modes in the scalar element FE_Q_DG0, which has been realized by a + few modifications in how the constant modes propagate from the element to + the extract_constant_modes() function. +
        + (Martin Kronbichler, 2014/04/04) +
      10. + +
      11. Fixed: GridTools::laplace_transform had previously announced in + the documentation that one can also set the location of interior points, + but this was not in fact what was implemented. This has now been fixed: + the code can now do that. +
        + (Denis Davydov, Wolfgang Bangerth, 2014/03/23) +
      12. + +
      13. Improved: Inhomogeneous tangential and normal flow constraints can + now be treated via VectorTools::compute_nonzero_normal_flux_constraints + and VectorTools::compute_nonzero_tangential_flux_constraints. +
        + (Daniel Arndt, 2014/03/16) +
      14. + +
      15. Changed: Class TriaAccessor had a function parent_index(), but this function + could only work for cell accessors. The function has consequently been moved + to class CellAccessor. +
        + (Wolfgang Bangerth, 2014/03/15) +
      16. Fixed: step-32 had a piece of code where we accessed an internal representation of how Trilinos vectors are actually stored. This is poor @@ -162,7 +218,7 @@ inconvenience this causes.
        (Markus Bürg, 2014/03/10)
      17. - +
      18. Fixed: ParameterHandler will no longer output an error if the file to be read ends with "end" without a newline.
        diff --git a/deal.II/doc/publications/index.html b/deal.II/doc/publications/index.html index ad1ecbca16..46a7fffa9d 100644 --- a/deal.II/doc/publications/index.html +++ b/deal.II/doc/publications/index.html @@ -300,12 +300,12 @@ SIAM J. Optim., vol. 24, pp. 108-126, 2014.
      19. -
      20. T. Wick, G. Singh, M.F. Wheeler +
      21. J. Reinhardt, A. Scacchi, J. M. Bader
        - Pressurized-Fracture propagation using a phase-field approach coupled to a reservoir simulator + Microrheology close to an equilibrium phase transition
        - SPE 168597-MS, SPE HFTC Proc., 2014. + J. Chem. Phys., vol. 140, article 144901, 2014.
      22. M.F. Wheeler, T. Wick, W. Wollner @@ -317,12 +317,20 @@ Pressurized Fractures Comput. Methods Appl. Mech. Engrg., vol. 271, pp. 69-85, 2014.
      23. +
      24. T. Wick, G. Singh, M.F. Wheeler +
        + Pressurized-Fracture propagation using a phase-field approach coupled to a reservoir simulator + +
        + SPE 168597-MS, SPE HFTC Proc., 2014. +
      25. +
      26. J. Willems
        Robust Multilevel Methods for General Symmetric Positive Definite Operators
        - SIAM J. Numer. Anal. 52 (2014), no. 1, 103-124. + SIAM J. Numer. Anal. 52 (2014), no. 1, 103-124, 2014.
      27. diff --git a/deal.II/examples/step-22/step-22.cc b/deal.II/examples/step-22/step-22.cc index 69fbc3b615..d52c0bbde9 100644 --- a/deal.II/examples/step-22/step-22.cc +++ b/deal.II/examples/step-22/step-22.cc @@ -1,7 +1,7 @@ /* --------------------------------------------------------------------- * $Id$ * - * Copyright (C) 2008 - 2013 by the deal.II authors + * Copyright (C) 2008 - 2014 by the deal.II authors * * This file is part of the deal.II library. * @@ -685,7 +685,7 @@ namespace Step22 // 1=y velocity, 2=pressure in 2d), which we use to pick out // the correct component of the right-hand side vector to // multiply with. - + const unsigned int component_i = fe.system_to_component_index(i).first; local_rhs(i) += fe_values.shape_value(i,q) * @@ -710,7 +710,7 @@ namespace Step22 // simultaneously use the ConstraintMatrix object to apply Dirichlet // boundary conditions and eliminate hanging node constraints, as we // discussed in the introduction), we have to be careful about one - // thing, though. We have only build up half of the local matrix + // thing, though. We have only built half of the local matrix // because of symmetry, but we're going to save the full system matrix // in order to use the standard functions for solution. This is done // by flipping the indices in case we are pointing into the empty part diff --git a/deal.II/examples/step-31/doc/intro.dox b/deal.II/examples/step-31/doc/intro.dox index 7676de331c..2735157a58 100644 --- a/deal.II/examples/step-31/doc/intro.dox +++ b/deal.II/examples/step-31/doc/intro.dox @@ -421,7 +421,7 @@ equivalent form: \nabla \cdot \kappa \nabla (T^\alpha) + \kappa(\alpha-1) - T^{\alpha-2} |\nabla T|^\alpha + T^{\alpha-2} |\nabla T|^2 - \gamma T^{\alpha-1} diff --git a/deal.II/examples/step-37/step-37.cc b/deal.II/examples/step-37/step-37.cc index 9cf1b00a84..2f07151750 100644 --- a/deal.II/examples/step-37/step-37.cc +++ b/deal.II/examples/step-37/step-37.cc @@ -221,17 +221,18 @@ namespace Step37 // twice. Rather, we would keep this object in the main class and simply // store a reference. // - // @note Observe how we store the values for the coefficient: We use a - // vector type AlignedVector > - // structure. One would think that one can use - // std::vector > as well, but there are - // some technicalities with vectorization: A certain alignment of the data - // with the memory address boundaries is required (essentially, a - // VectorizedArray of 16 bytes length as in SSE needs to start at a memory - // address that is divisible by 16). The chosen class makes sure that this - // alignment is respected, whereas std::vector can in general not, which may - // lead to segmentation faults at strange places for some systems or - // suboptimal performance for other systems. + // @note Note that storing values of type + // VectorizedArray requires care: Here, we use the + // deal.II table class which is prepared to hold the data with correct + // alignment. However, storing it in e.g. + // std::vector > is not possible with + // vectorization: A certain alignment of the data with the memory address + // boundaries is required (essentially, a VectorizedArray of 16 bytes length + // as in SSE needs to start at a memory address that is divisible by + // 16). The table class (as well as the AlignedVector class it is based on) + // makes sure that this alignment is respected, whereas std::vector can in + // general not, which may lead to segmentation faults at strange places for + // some systems or suboptimal performance for other systems. template class LaplaceOperator : public Subscriptor { @@ -271,7 +272,7 @@ namespace Step37 void evaluate_coefficient(const Coefficient &function); MatrixFree data; - AlignedVector > coefficient; + Table<2, VectorizedArray > coefficient; Vector diagonal_values; bool diagonal_is_available; @@ -389,12 +390,12 @@ namespace Step37 { const unsigned int n_cells = data.n_macro_cells(); FEEvaluation phi (data); - coefficient.resize (n_cells * phi.n_q_points); + coefficient.reinit (n_cells, phi.n_q_points); for (unsigned int cell=0; cell &cell_range) const { FEEvaluation phi (data); - AssertDimension (coefficient.size(), data.n_macro_cells() * phi.n_q_points); for (unsigned int cell=cell_range.first; cell::const_iterator it = + std::vector::const_iterator it = std::find(names.begin(), names.end(), n); Assert(it != names.end(), ExcMessage("An entry with this name does not exist")); diff --git a/deal.II/include/deal.II/base/aligned_vector.h b/deal.II/include/deal.II/base/aligned_vector.h index 7c8241a273..07f1a24ecb 100644 --- a/deal.II/include/deal.II/base/aligned_vector.h +++ b/deal.II/include/deal.II/base/aligned_vector.h @@ -23,6 +23,8 @@ #include #include #include +#include +#include #include @@ -152,6 +154,11 @@ public: void insert_back (ForwardIterator begin, ForwardIterator end); + /** + * Fills the vector with size() copies of the given input + */ + void fill (const T &element); + /** * Swaps the given vector with the calling vector. */ @@ -211,6 +218,22 @@ public: */ size_type memory_consumption () const; + /** + * Write the data of this object to + * a stream for the purpose of serialization. + */ + template + void save (Archive &ar, const unsigned int version) const; + + /** + * Read the data of this object + * from a stream for the purpose of serialization. + */ + template + void load (Archive &ar, const unsigned int version); + + BOOST_SERIALIZATION_SPLIT_MEMBER() + private: /** @@ -341,7 +364,11 @@ namespace internal if (size == 0) return; - if (std_cxx1x::is_trivial::value == true) + // do not use memcmp for long double because on some systems it does not + // completely fill its memory and may lead to false positives in + // e.g. valgrind + if (std_cxx1x::is_trivial::value == true && + types_are_equal::value == false) { const unsigned char zero [sizeof(T)] = {}; // cast element to (void*) to silence compiler warning for virtual @@ -380,6 +407,7 @@ namespace internal mutable T *destination_; bool trivial_element; }; + } // end of namespace internal @@ -441,7 +469,7 @@ inline AlignedVector& AlignedVector::operator = (const AlignedVector &vec) { - clear(); + resize(0); resize_fast (vec._end_data - vec._data); internal::AlignedVectorMove (vec._data, vec._end_data, _data, true); return *this; @@ -477,8 +505,7 @@ AlignedVector::resize (const size_type size_in, // now _size is set correctly, need to set the // values if (size_in > old_size) - internal::AlignedVectorSet (size_in-old_size, init, - _data+old_size); + dealii::internal::AlignedVectorSet (size_in-old_size, init, _data+old_size); } @@ -616,6 +643,16 @@ AlignedVector::insert_back (ForwardIterator begin, +template < class T > +inline +void +AlignedVector::fill (const T &value) +{ + dealii::internal::AlignedVectorSet (size(), value, _data); +} + + + template < class T > inline void @@ -720,13 +757,48 @@ AlignedVector::end () const +template < class T > +template < class Archive > +inline +void +AlignedVector::save (Archive &ar, const unsigned int) const +{ + size_type vec_size (size()); + ar &vec_size; + if (vec_size > 0) + ar &boost::serialization::make_array(_data, vec_size); +} + + + +template < class T > +template < class Archive > +inline +void +AlignedVector::load (Archive &ar, const unsigned int) +{ + size_type vec_size = 0; + ar &vec_size ; + + if (vec_size > 0) + { + reserve(vec_size); + ar &boost::serialization::make_array(_data, vec_size); + _end_data = _data + vec_size; + } +} + + + template < class T > inline typename AlignedVector::size_type AlignedVector::memory_consumption () const { - size_type memory = sizeof(this); - memory += sizeof(T) * capacity(); + size_type memory = sizeof(*this); + for (const T* t = _data ; t != _end_data; ++t) + memory += dealii::MemoryConsumption::memory_consumption(*t); + memory += sizeof(T) * (_end_allocated-_end_data); return memory; } diff --git a/deal.II/include/deal.II/base/config.h.in b/deal.II/include/deal.II/base/config.h.in index d16140c8c0..1d99e497ba 100644 --- a/deal.II/include/deal.II/base/config.h.in +++ b/deal.II/include/deal.II/base/config.h.in @@ -235,7 +235,7 @@ * Defined if there is no const operator() in the class type returned * by std::bind. */ -#cmakedefine DEAL_II_BOOST_BIND_NO_CONST_OP_PARENTHESES +#cmakedefine DEAL_II_BIND_NO_CONST_OP_PARENTHESES /** Defined if the compiler incorrectly deduces a constexpr as not being a * constant integral expression under certain optimization (notably diff --git a/deal.II/include/deal.II/base/data_out_base.h b/deal.II/include/deal.II/base/data_out_base.h index ea0a249a98..fe2be969d1 100644 --- a/deal.II/include/deal.II/base/data_out_base.h +++ b/deal.II/include/deal.II/base/data_out_base.h @@ -1762,7 +1762,8 @@ namespace DataOutBase * need a .pvtu file that describes which VTU files form * a group. The DataOutInterface::write_pvtu_record() function can * generate such a master record. Likewise, - * DataOutInterface::write_visit_record() does the same for VisIt. + * DataOutInterface::write_visit_record() does the same for VisIt + * (although VisIt can also read pvtu records since version 2.5.1). * Finally, for time dependent problems, you may also want to look * at DataOutInterface::write_pvd_record() * @@ -2239,11 +2240,12 @@ public: * function can generate such a * master record. Likewise, * DataOutInterface::write_visit_record() - * does the same for VisIt. Finally, - * DataOutInterface::write_pvd_record() - * can be used to group together - * the files that jointly make up - * a time dependent simulation. + * does the same for older versions of VisIt + * (although VisIt can also read pvtu records since version 2.5.1). + * Finally, DataOutInterface::write_pvd_record() + * can be used to group together + * the files that jointly make up + * a time dependent simulation. */ void write_vtu (std::ostream &out) const; @@ -2297,17 +2299,15 @@ public: * @note The use of this function is * explained in step-40. * - * @note In order to tell Paraview to - * group together multiple pvtu - * files that each describe one time - * step of a time dependent simulation, - * see the + * @note In order to tell Paraview to + * group together multiple pvtu + * files that each describe one time + * step of a time dependent simulation, + * see the * DataOutInterface::write_pvd_record() - * function. - * - * @note At the time of writing, - * the other big VTK-based - * visualization program, VisIt, + * function. + * + * @note Older versions of VisIt (before 2.5.1), * can not read pvtu * records. However, it can read * visit records as written by @@ -2374,7 +2374,7 @@ public: /** * This function is the exact equivalent of the write_pvtu_record() - * function but for the VisIt visualization program and for one visualization graph + * function but for older versions of the VisIt visualization program and for one visualization graph * (or one time step only). See there for the purpose of this function. * * This function is documented in the "Creating a master file for diff --git a/deal.II/include/deal.II/base/memory_consumption.h b/deal.II/include/deal.II/base/memory_consumption.h index a42f4ca401..b88f670ca2 100644 --- a/deal.II/include/deal.II/base/memory_consumption.h +++ b/deal.II/include/deal.II/base/memory_consumption.h @@ -1,7 +1,7 @@ // --------------------------------------------------------------------- // $Id$ // -// Copyright (C) 2000 - 2013 by the deal.II authors +// Copyright (C) 2000 - 2014 by the deal.II authors // // This file is part of the deal.II library. // @@ -29,6 +29,10 @@ DEAL_II_NAMESPACE_OPEN +// forward declaration +template class VectorizedArray; + + /** * This namespace provides functions helping to determine the amount * of memory used by objects. The goal is not necessarily to give the @@ -198,6 +202,14 @@ namespace MemoryConsumption inline std::size_t memory_consumption (const std::complex &); + /** + * Determine the amount of memory in bytes consumed by a + * VectorizedArray variable. + */ + template + inline + std::size_t memory_consumption (const VectorizedArray &); + /** * Determine an estimate of the * amount of memory in bytes @@ -522,6 +534,7 @@ namespace MemoryConsumption } + template inline std::size_t memory_consumption (const std::complex &) @@ -531,6 +544,15 @@ namespace MemoryConsumption + template + inline + std::size_t memory_consumption (const VectorizedArray &) + { + return sizeof(VectorizedArray); + } + + + inline std::size_t memory_consumption (const std::string &s) { diff --git a/deal.II/include/deal.II/base/parallel.h b/deal.II/include/deal.II/base/parallel.h index 4ab52a338d..9a2e175175 100644 --- a/deal.II/include/deal.II/base/parallel.h +++ b/deal.II/include/deal.II/base/parallel.h @@ -475,8 +475,9 @@ namespace parallel f (begin, end); # else // work around a problem with MS VC++ where there is no const - // operator() in Function - Function(f) (begin, end); + // operator() in 'Function' if 'Function' is the result of std::bind + Function ff = f; + ff (begin, end); # endif #else tbb::parallel_for (tbb::blocked_range @@ -758,11 +759,12 @@ namespace parallel (void) grainsize; # ifndef DEAL_II_BIND_NO_CONST_OP_PARENTHESES - f (begin, end); + return f (begin, end); # else // work around a problem with MS VC++ where there is no const - // operator() in Function - Function(f) (begin, end); + // operator() in 'Function' if 'Function' is the result of std::bind + Function ff = f; + return ff (begin, end); # endif #else internal::ReductionOnSubranges diff --git a/deal.II/include/deal.II/base/table.h b/deal.II/include/deal.II/base/table.h index 890d8d9af4..a861fa0089 100644 --- a/deal.II/include/deal.II/base/table.h +++ b/deal.II/include/deal.II/base/table.h @@ -1,7 +1,7 @@ // --------------------------------------------------------------------- // $Id$ // -// Copyright (C) 2002 - 2013 by the deal.II authors +// Copyright (C) 2002 - 2014 by the deal.II authors // // This file is part of the deal.II library. // @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -86,11 +87,11 @@ namespace internal typedef const T value_type; typedef const TableBase TableType; - typedef typename std::vector::const_iterator iterator; - typedef typename std::vector::const_iterator const_iterator; + typedef typename AlignedVector::const_iterator iterator; + typedef typename AlignedVector::const_iterator const_iterator; - typedef typename std::vector::const_reference reference; - typedef typename std::vector::const_reference const_reference; + typedef typename AlignedVector::const_reference reference; + typedef typename AlignedVector::const_reference const_reference; }; /** @@ -104,11 +105,11 @@ namespace internal typedef T value_type; typedef TableBase TableType; - typedef typename std::vector::iterator iterator; - typedef typename std::vector::const_iterator const_iterator; + typedef typename AlignedVector::iterator iterator; + typedef typename AlignedVector::const_iterator const_iterator; - typedef typename std::vector::reference reference; - typedef typename std::vector::const_reference const_reference; + typedef typename AlignedVector::reference reference; + typedef typename AlignedVector::const_reference const_reference; }; @@ -648,7 +649,7 @@ public: * Return a read-write reference * to the indicated element. */ - typename std::vector::reference + typename AlignedVector::reference operator () (const TableIndices &indices); /** @@ -664,7 +665,7 @@ public: * don't know here whether * copying is expensive or not. */ - typename std::vector::const_reference + typename AlignedVector::const_reference operator () (const TableIndices &indices) const; /** @@ -712,7 +713,7 @@ protected: * used internally and in * functions already checked. */ - typename std::vector::reference el (const TableIndices &indices); + typename AlignedVector::reference el (const TableIndices &indices); /** * Return the value of the @@ -732,7 +733,7 @@ protected: * don't know here whether * copying is expensive or not. */ - typename std::vector::const_reference el (const TableIndices &indices) const; + typename AlignedVector::const_reference el (const TableIndices &indices) const; /** * @deprecated This function @@ -746,13 +747,13 @@ protected: * cast from const), otherwise, * keep away! */ - typename std::vector::const_pointer data () const DEAL_II_DEPRECATED; + typename AlignedVector::const_pointer data () const DEAL_II_DEPRECATED; protected: /** * Component-array. */ - std::vector values; + AlignedVector values; /** * Size in each direction of the @@ -869,7 +870,7 @@ public: * data element. Returns a * read-only reference. */ - typename std::vector::const_reference + typename AlignedVector::const_reference operator [] (const unsigned int i) const; /** @@ -879,7 +880,7 @@ public: * data element. Returns a * read-write reference. */ - typename std::vector::reference + typename AlignedVector::reference operator [] (const unsigned int i); /** @@ -889,7 +890,7 @@ public: * data element. Returns a * read-only reference. */ - typename std::vector::const_reference + typename AlignedVector::const_reference operator () (const unsigned int i) const; /** @@ -899,7 +900,7 @@ public: * data element. Returns a * read-write reference. */ - typename std::vector::reference + typename AlignedVector::reference operator () (const unsigned int i); /** @@ -908,7 +909,7 @@ public: * base class available also in * this class. */ - typename std::vector::reference + typename AlignedVector::reference operator () (const TableIndices<1> &indices); /** @@ -917,7 +918,7 @@ public: * base class available also in * this class. */ - typename std::vector::const_reference + typename AlignedVector::const_reference operator () (const TableIndices<1> &indices) const; }; @@ -1049,7 +1050,7 @@ public: * This version of the function * only allows read access. */ - typename std::vector::const_reference + typename AlignedVector::const_reference operator () (const unsigned int i, const unsigned int j) const; @@ -1063,7 +1064,7 @@ public: * This version of the function * allows read-write access. */ - typename std::vector::reference + typename AlignedVector::reference operator () (const unsigned int i, const unsigned int j); @@ -1073,7 +1074,7 @@ public: * base class available also in * this class. */ - typename std::vector::reference + typename AlignedVector::reference operator () (const TableIndices<2> &indices); /** @@ -1082,7 +1083,7 @@ public: * base class available also in * this class. */ - typename std::vector::const_reference + typename AlignedVector::const_reference operator () (const TableIndices<2> &indices) const; @@ -1118,8 +1119,8 @@ protected: * table classes for 2d arrays, * then called vector2d. */ - typename std::vector::reference el (const unsigned int i, - const unsigned int j); + typename AlignedVector::reference el (const unsigned int i, + const unsigned int j); /** * Return the value of the @@ -1145,8 +1146,8 @@ protected: * table classes for 2d arrays, * then called vector2d. */ - typename std::vector::const_reference el (const unsigned int i, - const unsigned int j) const; + typename AlignedVector::const_reference el (const unsigned int i, + const unsigned int j) const; }; @@ -1266,9 +1267,9 @@ public: * This version of the function * only allows read access. */ - typename std::vector::const_reference operator () (const unsigned int i, - const unsigned int j, - const unsigned int k) const; + typename AlignedVector::const_reference operator () (const unsigned int i, + const unsigned int j, + const unsigned int k) const; /** @@ -1280,9 +1281,9 @@ public: * This version of the function * allows read-write access. */ - typename std::vector::reference operator () (const unsigned int i, - const unsigned int j, - const unsigned int k); + typename AlignedVector::reference operator () (const unsigned int i, + const unsigned int j, + const unsigned int k); /** * Make the corresponding @@ -1290,7 +1291,7 @@ public: * base class available also in * this class. */ - typename std::vector::reference operator () (const TableIndices<3> &indices); + typename AlignedVector::reference operator () (const TableIndices<3> &indices); /** * Make the corresponding @@ -1298,7 +1299,7 @@ public: * base class available also in * this class. */ - typename std::vector::const_reference operator () (const TableIndices<3> &indices) const; + typename AlignedVector::const_reference operator () (const TableIndices<3> &indices) const; }; @@ -1370,10 +1371,10 @@ public: * This version of the function * only allows read access. */ - typename std::vector::const_reference operator () (const unsigned int i, - const unsigned int j, - const unsigned int k, - const unsigned int l) const; + typename AlignedVector::const_reference operator () (const unsigned int i, + const unsigned int j, + const unsigned int k, + const unsigned int l) const; /** @@ -1385,10 +1386,10 @@ public: * This version of the function * allows read-write access. */ - typename std::vector::reference operator () (const unsigned int i, - const unsigned int j, - const unsigned int k, - const unsigned int l); + typename AlignedVector::reference operator () (const unsigned int i, + const unsigned int j, + const unsigned int k, + const unsigned int l); /** * Make the corresponding @@ -1396,7 +1397,7 @@ public: * base class available also in * this class. */ - typename std::vector::reference + typename AlignedVector::reference operator () (const TableIndices<4> &indices); /** @@ -1405,7 +1406,7 @@ public: * base class available also in * this class. */ - typename std::vector::const_reference + typename AlignedVector::const_reference operator () (const TableIndices<4> &indices) const; }; @@ -1479,11 +1480,11 @@ public: * This version of the function * only allows read access. */ - typename std::vector::const_reference operator () (const unsigned int i, - const unsigned int j, - const unsigned int k, - const unsigned int l, - const unsigned int m) const; + typename AlignedVector::const_reference operator () (const unsigned int i, + const unsigned int j, + const unsigned int k, + const unsigned int l, + const unsigned int m) const; /** * Direct access to one element @@ -1494,11 +1495,11 @@ public: * This version of the function * allows read-write access. */ - typename std::vector::reference operator () (const unsigned int i, - const unsigned int j, - const unsigned int k, - const unsigned int l, - const unsigned int m); + typename AlignedVector::reference operator () (const unsigned int i, + const unsigned int j, + const unsigned int k, + const unsigned int l, + const unsigned int m); /** * Make the corresponding @@ -1506,7 +1507,7 @@ public: * base class available also in * this class. */ - typename std::vector::reference + typename AlignedVector::reference operator () (const TableIndices<5> &indices); /** @@ -1515,7 +1516,7 @@ public: * base class available also in * this class. */ - typename std::vector::const_reference + typename AlignedVector::const_reference operator () (const TableIndices<5> &indices) const; }; @@ -1590,12 +1591,12 @@ public: * This version of the function * only allows read access. */ - typename std::vector::const_reference operator () (const unsigned int i, - const unsigned int j, - const unsigned int k, - const unsigned int l, - const unsigned int m, - const unsigned int n) const; + typename AlignedVector::const_reference operator () (const unsigned int i, + const unsigned int j, + const unsigned int k, + const unsigned int l, + const unsigned int m, + const unsigned int n) const; /** * Direct access to one element @@ -1606,12 +1607,12 @@ public: * This version of the function * allows read-write access. */ - typename std::vector::reference operator () (const unsigned int i, - const unsigned int j, - const unsigned int k, - const unsigned int l, - const unsigned int m, - const unsigned int n); + typename AlignedVector::reference operator () (const unsigned int i, + const unsigned int j, + const unsigned int k, + const unsigned int l, + const unsigned int m, + const unsigned int n); /** * Make the corresponding @@ -1619,7 +1620,7 @@ public: * base class available also in * this class. */ - typename std::vector::reference + typename AlignedVector::reference operator () (const TableIndices<6> &indices); /** @@ -1628,7 +1629,7 @@ public: * base class available also in * this class. */ - typename std::vector::const_reference + typename AlignedVector::const_reference operator () (const TableIndices<6> &indices) const; }; @@ -1703,13 +1704,13 @@ public: * This version of the function * only allows read access. */ - typename std::vector::const_reference operator () (const unsigned int i, - const unsigned int j, - const unsigned int k, - const unsigned int l, - const unsigned int m, - const unsigned int n, - const unsigned int o) const; + typename AlignedVector::const_reference operator () (const unsigned int i, + const unsigned int j, + const unsigned int k, + const unsigned int l, + const unsigned int m, + const unsigned int n, + const unsigned int o) const; /** * Direct access to one element @@ -1720,13 +1721,13 @@ public: * This version of the function * allows read-write access. */ - typename std::vector::reference operator () (const unsigned int i, - const unsigned int j, - const unsigned int k, - const unsigned int l, - const unsigned int m, - const unsigned int n, - const unsigned int o); + typename AlignedVector::reference operator () (const unsigned int i, + const unsigned int j, + const unsigned int k, + const unsigned int l, + const unsigned int m, + const unsigned int n, + const unsigned int o); /** * Make the corresponding @@ -1734,7 +1735,7 @@ public: * base class available also in * this class. */ - typename std::vector::reference + typename AlignedVector::reference operator () (const TableIndices<7> &indices); /** @@ -1743,7 +1744,7 @@ public: * base class available also in * this class. */ - typename std::vector::const_reference + typename AlignedVector::const_reference operator () (const TableIndices<7> &indices) const; }; @@ -1803,8 +1804,8 @@ public: * This version of the function * only allows read access. */ - typename std::vector::const_reference operator () (const unsigned int i, - const unsigned int j) const; + typename AlignedVector::const_reference operator () (const unsigned int i, + const unsigned int j) const; /** * Direct access to one element @@ -1815,8 +1816,8 @@ public: * This version of the function * allows read-write access. */ - typename std::vector::reference operator () (const unsigned int i, - const unsigned int j); + typename AlignedVector::reference operator () (const unsigned int i, + const unsigned int j); /** * Number of rows. This function @@ -1850,7 +1851,7 @@ protected: * table classes for 2d arrays, * then called vector2d. */ - typename std::vector::reference el (const unsigned int i, + typename AlignedVector::reference el (const unsigned int i, const unsigned int j); /** @@ -1877,7 +1878,7 @@ protected: * table classes for 2d arrays, * then called vector2d. */ - typename std::vector::const_reference el (const unsigned int i, + typename AlignedVector::const_reference el (const unsigned int i, const unsigned int j) const; }; @@ -1921,9 +1922,8 @@ TableBase::TableBase (const TableBase &src) : Subscriptor () { - reinit (src.table_size); - if (src.n_elements() != 0) - std::copy (src.values.begin(), src.values.end(), values.begin()); + values = src.values; + reinit (src.table_size, true); } @@ -2112,9 +2112,9 @@ inline TableBase & TableBase::operator = (const TableBase &m) { - reinit (m.size()); - if (!empty()) - std::copy (m.values.begin(), m.values.end(), values.begin()); + if (!m.empty()) + values = m.values; + reinit (m.size(), true); return *this; } @@ -2127,7 +2127,7 @@ inline TableBase & TableBase::operator = (const TableBase &m) { - reinit (m.size()); + reinit (m.size(), true); if (!empty()) std::copy (m.values.begin(), m.values.begin() + n_elements(), values.begin()); @@ -2151,8 +2151,9 @@ inline void TableBase::reset_values () { + // use parallel set operation if (n_elements() != 0) - std::fill (values.begin(), values.end(), T()); + values.fill(T()); } @@ -2163,7 +2164,7 @@ void TableBase::fill (const T &value) { if (n_elements() != 0) - std::fill (values.begin(), values.end(), value); + values.fill(value); } @@ -2179,8 +2180,7 @@ TableBase::reinit (const TableIndices &new_sizes, const unsigned int new_size = n_elements(); - // if zero size was given: free all - // memory + // if zero size was given: free all memory if (new_size == 0) { values.resize (0); @@ -2193,27 +2193,11 @@ TableBase::reinit (const TableIndices &new_sizes, return; } - // if new size is nonzero: - // if necessary allocate - // additional memory - values.resize (new_size); - - // reinitialize contents of old or - // new memory. note that we - // actually need to do this here, - // even in the case that we - // reallocated memory, since per - // C++ standard, clause 5.3.4/15 - // the newly allocated objects are - // only default initialized by - // operator new[] if they are - // non-POD type. In other words, if - // we have a table of doubles, then - // their values after calling 'new - // double[val_size]' is - // indetermined. - if (fast == false) - reset_values (); + // if new size is nonzero: if necessary allocate additional memory, and if + // not fast resize, zero out all values) + values.resize_fast (new_size); + if (!fast) + values.fill(T()); } @@ -2317,7 +2301,7 @@ TableBase::fill (InputIterator entries, ExcMessage("Trying to fill an empty matrix.")); if (C_style_indexing) - for (typename std::vector::iterator p = values.begin(); + for (typename AlignedVector::iterator p = values.begin(); p != values.end(); ++p) *p = *entries++; else @@ -2380,7 +2364,7 @@ TableBase::position (const TableIndices &indices) const template inline -typename std::vector::const_reference +typename AlignedVector::const_reference TableBase::operator () (const TableIndices &indices) const { for (unsigned int n=0; n::operator () (const TableIndices &indices) const template inline -typename std::vector::reference +typename AlignedVector::reference TableBase::operator () (const TableIndices &indices) { for (unsigned int n=0; n::operator () (const TableIndices &indices) template inline -typename std::vector::const_reference +typename AlignedVector::const_reference TableBase::el (const TableIndices &indices) const { return values[position(indices)]; @@ -2416,7 +2400,7 @@ TableBase::el (const TableIndices &indices) const template inline -typename std::vector::reference +typename AlignedVector::reference TableBase::el (const TableIndices &indices) { Assert (position(indices) < values.size(), @@ -2428,11 +2412,11 @@ TableBase::el (const TableIndices &indices) template inline -typename std::vector::const_pointer +typename AlignedVector::const_pointer TableBase::data () const { if (values.size() == 0) - return typename std::vector::const_pointer(); + return typename AlignedVector::const_pointer(); else return &values[0]; } @@ -2472,7 +2456,7 @@ Table<1,T>::Table (const unsigned int size, template inline -typename std::vector::const_reference +typename AlignedVector::const_reference Table<1,T>::operator [] (const unsigned int i) const { Assert (i < this->table_size[0], @@ -2484,7 +2468,7 @@ Table<1,T>::operator [] (const unsigned int i) const template inline -typename std::vector::reference +typename AlignedVector::reference Table<1,T>::operator [] (const unsigned int i) { Assert (i < this->table_size[0], @@ -2496,7 +2480,7 @@ Table<1,T>::operator [] (const unsigned int i) template inline -typename std::vector::const_reference +typename AlignedVector::const_reference Table<1,T>::operator () (const unsigned int i) const { Assert (i < this->table_size[0], @@ -2508,7 +2492,7 @@ Table<1,T>::operator () (const unsigned int i) const template inline -typename std::vector::reference +typename AlignedVector::reference Table<1,T>::operator () (const unsigned int i) { Assert (i < this->table_size[0], @@ -2520,7 +2504,7 @@ Table<1,T>::operator () (const unsigned int i) template inline -typename std::vector::const_reference +typename AlignedVector::const_reference Table<1,T>::operator () (const TableIndices<1> &indices) const { return TableBase<1,T>::operator () (indices); @@ -2530,7 +2514,7 @@ Table<1,T>::operator () (const TableIndices<1> &indices) const template inline -typename std::vector::reference +typename AlignedVector::reference Table<1,T>::operator () (const TableIndices<1> &indices) { return TableBase<1,T>::operator () (indices); @@ -2611,7 +2595,7 @@ Table<2,T>::operator [] (const unsigned int i) template inline -typename std::vector::const_reference +typename AlignedVector::const_reference Table<2,T>::operator () (const unsigned int i, const unsigned int j) const { @@ -2626,7 +2610,7 @@ Table<2,T>::operator () (const unsigned int i, template inline -typename std::vector::reference +typename AlignedVector::reference Table<2,T>::operator () (const unsigned int i, const unsigned int j) { @@ -2641,7 +2625,7 @@ Table<2,T>::operator () (const unsigned int i, template inline -typename std::vector::const_reference +typename AlignedVector::const_reference Table<2,T>::operator () (const TableIndices<2> &indices) const { return TableBase<2,T>::operator () (indices); @@ -2651,7 +2635,7 @@ Table<2,T>::operator () (const TableIndices<2> &indices) const template inline -typename std::vector::reference +typename AlignedVector::reference Table<2,T>::operator () (const TableIndices<2> &indices) { return TableBase<2,T>::operator () (indices); @@ -2661,7 +2645,7 @@ Table<2,T>::operator () (const TableIndices<2> &indices) template inline -typename std::vector::const_reference +typename AlignedVector::const_reference Table<2,T>::el (const unsigned int i, const unsigned int j) const { @@ -2672,7 +2656,7 @@ Table<2,T>::el (const unsigned int i, template inline -typename std::vector::reference +typename AlignedVector::reference Table<2,T>::el (const unsigned int i, const unsigned int j) { @@ -2734,7 +2718,7 @@ TransposeTable::reinit (const unsigned int size1, template inline -typename std::vector::const_reference +typename AlignedVector::const_reference TransposeTable::operator () (const unsigned int i, const unsigned int j) const { @@ -2749,7 +2733,7 @@ TransposeTable::operator () (const unsigned int i, template inline -typename std::vector::reference +typename AlignedVector::reference TransposeTable::operator () (const unsigned int i, const unsigned int j) { @@ -2764,7 +2748,7 @@ TransposeTable::operator () (const unsigned int i, template inline -typename std::vector::const_reference +typename AlignedVector::const_reference TransposeTable::el (const unsigned int i, const unsigned int j) const { @@ -2775,7 +2759,7 @@ TransposeTable::el (const unsigned int i, template inline -typename std::vector::reference +typename AlignedVector::reference TransposeTable::el (const unsigned int i, const unsigned int j) { @@ -2875,7 +2859,7 @@ Table<3,T>::operator [] (const unsigned int i) template inline -typename std::vector::const_reference +typename AlignedVector::const_reference Table<3,T>::operator () (const unsigned int i, const unsigned int j, const unsigned int k) const @@ -2894,7 +2878,7 @@ Table<3,T>::operator () (const unsigned int i, template inline -typename std::vector::reference +typename AlignedVector::reference Table<3,T>::operator () (const unsigned int i, const unsigned int j, const unsigned int k) @@ -2913,7 +2897,7 @@ Table<3,T>::operator () (const unsigned int i, template inline -typename std::vector::const_reference +typename AlignedVector::const_reference Table<3,T>::operator () (const TableIndices<3> &indices) const { return TableBase<3,T>::operator () (indices); @@ -2923,7 +2907,7 @@ Table<3,T>::operator () (const TableIndices<3> &indices) const template inline -typename std::vector::reference +typename AlignedVector::reference Table<3,T>::operator () (const TableIndices<3> &indices) { return TableBase<3,T>::operator () (indices); @@ -2986,7 +2970,7 @@ Table<4,T>::operator [] (const unsigned int i) template inline -typename std::vector::const_reference +typename AlignedVector::const_reference Table<4,T>::operator () (const unsigned int i, const unsigned int j, const unsigned int k, @@ -3009,7 +2993,7 @@ Table<4,T>::operator () (const unsigned int i, template inline -typename std::vector::reference +typename AlignedVector::reference Table<4,T>::operator () (const unsigned int i, const unsigned int j, const unsigned int k, @@ -3032,7 +3016,7 @@ Table<4,T>::operator () (const unsigned int i, template inline -typename std::vector::const_reference +typename AlignedVector::const_reference Table<4,T>::operator () (const TableIndices<4> &indices) const { return TableBase<4,T>::operator () (indices); @@ -3042,7 +3026,7 @@ Table<4,T>::operator () (const TableIndices<4> &indices) const template inline -typename std::vector::reference +typename AlignedVector::reference Table<4,T>::operator () (const TableIndices<4> &indices) { return TableBase<4,T>::operator () (indices); @@ -3108,7 +3092,7 @@ Table<5,T>::operator [] (const unsigned int i) template inline -typename std::vector::const_reference +typename AlignedVector::const_reference Table<5,T>::operator () (const unsigned int i, const unsigned int j, const unsigned int k, @@ -3135,7 +3119,7 @@ Table<5,T>::operator () (const unsigned int i, template inline -typename std::vector::reference +typename AlignedVector::reference Table<5,T>::operator () (const unsigned int i, const unsigned int j, const unsigned int k, @@ -3162,7 +3146,7 @@ Table<5,T>::operator () (const unsigned int i, template inline -typename std::vector::const_reference +typename AlignedVector::const_reference Table<5,T>::operator () (const TableIndices<5> &indices) const { return TableBase<5,T>::operator () (indices); @@ -3172,7 +3156,7 @@ Table<5,T>::operator () (const TableIndices<5> &indices) const template inline -typename std::vector::reference +typename AlignedVector::reference Table<5,T>::operator () (const TableIndices<5> &indices) { return TableBase<5,T>::operator () (indices); @@ -3241,7 +3225,7 @@ Table<6,T>::operator [] (const unsigned int i) template inline -typename std::vector::const_reference +typename AlignedVector::const_reference Table<6,T>::operator () (const unsigned int i, const unsigned int j, const unsigned int k, @@ -3272,7 +3256,7 @@ Table<6,T>::operator () (const unsigned int i, template inline -typename std::vector::reference +typename AlignedVector::reference Table<6,T>::operator () (const unsigned int i, const unsigned int j, const unsigned int k, @@ -3303,7 +3287,7 @@ Table<6,T>::operator () (const unsigned int i, template inline -typename std::vector::const_reference +typename AlignedVector::const_reference Table<6,T>::operator () (const TableIndices<6> &indices) const { return TableBase<6,T>::operator () (indices); @@ -3313,7 +3297,7 @@ Table<6,T>::operator () (const TableIndices<6> &indices) const template inline -typename std::vector::reference +typename AlignedVector::reference Table<6,T>::operator () (const TableIndices<6> &indices) { return TableBase<6,T>::operator () (indices); @@ -3385,7 +3369,7 @@ Table<7,T>::operator [] (const unsigned int i) template inline -typename std::vector::const_reference +typename AlignedVector::const_reference Table<7,T>::operator () (const unsigned int i, const unsigned int j, const unsigned int k, @@ -3420,7 +3404,7 @@ Table<7,T>::operator () (const unsigned int i, template inline -typename std::vector::reference +typename AlignedVector::reference Table<7,T>::operator () (const unsigned int i, const unsigned int j, const unsigned int k, @@ -3455,7 +3439,7 @@ Table<7,T>::operator () (const unsigned int i, template inline -typename std::vector::const_reference +typename AlignedVector::const_reference Table<7,T>::operator () (const TableIndices<7> &indices) const { return TableBase<7,T>::operator () (indices); @@ -3465,7 +3449,7 @@ Table<7,T>::operator () (const TableIndices<7> &indices) const template inline -typename std::vector::reference +typename AlignedVector::reference Table<7,T>::operator () (const TableIndices<7> &indices) { return TableBase<7,T>::operator () (indices); diff --git a/deal.II/include/deal.II/base/time_stepping.h b/deal.II/include/deal.II/base/time_stepping.h index e3a7590113..87a46e5313 100644 --- a/deal.II/include/deal.II/base/time_stepping.h +++ b/deal.II/include/deal.II/base/time_stepping.h @@ -43,7 +43,7 @@ namespace TimeStepping * - Implicit methods: * - BACKWARD_EULER: first order * - IMPLICIT_MIDPOINT: second order - * - CRANK_NICHOLSON: second order + * - CRANK_NICOLSON: second order * - SDIRK_TWO_STAGES: second order * - Embedded explicit methods: * - HEUN_EULER: second order diff --git a/deal.II/include/deal.II/base/time_stepping.templates.h b/deal.II/include/deal.II/base/time_stepping.templates.h index 8a97eb0f73..c3c08f117d 100644 --- a/deal.II/include/deal.II/base/time_stepping.templates.h +++ b/deal.II/include/deal.II/base/time_stepping.templates.h @@ -505,7 +505,7 @@ namespace TimeStepping tmp[3] = -212./729.; this->a.push_back(tmp); tmp.resize(5); - tmp[0] = -9017./3168.; + tmp[0] = 9017./3168.; tmp[1] = -355./33.; tmp[2] = 46732./5247.; tmp[3] = 49./176.; diff --git a/deal.II/include/deal.II/dofs/dof_accessor.h b/deal.II/include/deal.II/dofs/dof_accessor.h index 1c56c862d5..b2ed4084f5 100644 --- a/deal.II/include/deal.II/dofs/dof_accessor.h +++ b/deal.II/include/deal.II/dofs/dof_accessor.h @@ -290,12 +290,6 @@ public: */ static bool is_level_cell(); - /** - * Return an iterator pointing to the the parent. - */ - TriaIterator > - parent () const; - /** * @name Accessing sub-objects */ @@ -826,12 +820,6 @@ public: */ void copy_from (const TriaAccessorBase<0, 1, spacedim> &da); - /** - * Return an iterator pointing to the the parent. - */ - TriaIterator, level_dof_access> > - parent () const; - /** * @name Accessing sub-objects */ @@ -1259,9 +1247,13 @@ public: */ /** - * Return the parent as a DoF cell iterator. This function is needed - * since the parent function of the base class returns a cell - * accessor without access to the DoF data. + * Return the parent of this cell as a DoF cell iterator. + * If the parent does not exist (i.e., if the object is at the coarsest level of + * the mesh hierarchy), an exception is generated. + * + * This function is needed + * since the parent function of the base class CellAccessor returns a triangulation + * cell accessor without access to the DoF data. */ TriaIterator > parent () const; diff --git a/deal.II/include/deal.II/dofs/dof_accessor.templates.h b/deal.II/include/deal.II/dofs/dof_accessor.templates.h index ec4b975442..42446a05c0 100644 --- a/deal.II/include/deal.II/dofs/dof_accessor.templates.h +++ b/deal.II/include/deal.II/dofs/dof_accessor.templates.h @@ -188,34 +188,6 @@ DoFAccessor::child (const unsigned int i) const } -template -inline -TriaIterator > -DoFAccessor::parent () const -{ - Assert (static_cast(this->level()) < this->dof_handler->levels.size(), - ExcMessage ("DoFHandler not initialized")); - Assert (this->level () > 0, - ExcMessage ("Cell is at coarsest level.")); - - int previous_level; - - if (DH::dimension==structdim) - previous_level = this->level () - 1; - - else - previous_level = 0; - - TriaIterator > q (this->tria, - previous_level, - this->parent_index (), - this->dof_handler); - - return q; -} - - - namespace internal { namespace DoFAccessor diff --git a/deal.II/include/deal.II/dofs/dof_tools.h b/deal.II/include/deal.II/dofs/dof_tools.h index 22a6a74efa..45f72ff92d 100644 --- a/deal.II/include/deal.II/dofs/dof_tools.h +++ b/deal.II/include/deal.II/dofs/dof_tools.h @@ -1656,18 +1656,23 @@ namespace DoFTools * works on algebraic properties of the respective matrix, it has no * chance to detect whether the matrix comes from a scalar or a * vector valued problem. However, a near null space supplies - * exactly the needed information about these components. The null - * space will consist of as many vectors as there are true arguments - * in component_mask (see @ref GlossComponentMask), each of - * which will be one in one vector component and zero in all - * others. We store this object in a vector of vectors, where the - * outer vector is of the size of the number of selected components, - * and each inner vector has as many components as there are - * (locally owned) degrees of freedom in the selected - * components. Note that any matrix associated with this null space + * exactly the needed information about the components placement of vector + * components within the matrix. The null space (or rather, the constant + * modes) is provided by the finite element underlying the given DoFHandler + * and for most elements, the null space will consist of as many vectors as + * there are true arguments in component_mask (see @ref + * GlossComponentMask), each of which will be one in one vector component + * and zero in all others. However, the representation of the constant + * function for e.g. FE_DGP is different (the first component on each + * element one, all other components zero), and some scalar elements may + * even have two constant modes (FE_Q_DG0). Therefore, we store this object + * in a vector of vectors, where the outer vector contains the collection of + * the actual constant modes on the DoFHandler. Each inner vector has as + * many components as there are (locally owned) degrees of freedom in the + * selected components. Note that any matrix associated with this null space * must have been constructed using the same component_mask - * argument, since the numbering of DoFs is done relative to the - * selected dofs, not to all dofs. + * argument, since the numbering of DoFs is done relative to the selected + * dofs, not to all dofs. * * The main reason for this program is the use of the null space * with the AMG preconditioner. diff --git a/deal.II/include/deal.II/fe/fe.h b/deal.II/include/deal.II/fe/fe.h index 761a1c4a0a..1be926e630 100644 --- a/deal.II/include/deal.II/fe/fe.h +++ b/deal.II/include/deal.II/fe/fe.h @@ -23,7 +23,7 @@ #include #include #include - +#include DEAL_II_NAMESPACE_OPEN @@ -1314,13 +1314,22 @@ public: block_mask (const ComponentMask &component_mask) const; /** - * Returns a list of constant modes of the element. The returns table has as - * many rows as there are components in the element and dofs_per_cell - * columns. To each component of the finite element, the row in the returned - * table contains a basis representation of the constant function 1 on the - * element. + * Returns a list of constant modes of the element. The number of rows in + * the resulting table depends on the elements in use. For standard + * elements, the table has as many rows as there are components in the + * element and dofs_per_cell columns. To each component of the finite + * element, the row in the returned table contains a basis representation of + * the constant function 1 on the element. However, there are some scalar + * elements where there is more than one constant mode, e.g. the element + * FE_Q_DG0. + * + * In order to match the constant modes to the actual components in the + * element, the returned data structure also returns a vector with as many + * components as there are constant modes on the element that contains the + * component number. */ - virtual Table<2,bool> get_constant_modes () const; + virtual std::pair,std::vector > + get_constant_modes () const; //@} diff --git a/deal.II/include/deal.II/fe/fe_base.h b/deal.II/include/deal.II/fe/fe_base.h index 35e7dae1af..6622706e59 100644 --- a/deal.II/include/deal.II/fe/fe_base.h +++ b/deal.II/include/deal.II/fe/fe_base.h @@ -26,8 +26,8 @@ #include #include #include +#include #include -#include #include #include diff --git a/deal.II/include/deal.II/fe/fe_bdm.h b/deal.II/include/deal.II/fe/fe_bdm.h index 25c9e9e3d0..3eb6400341 100644 --- a/deal.II/include/deal.II/fe/fe_bdm.h +++ b/deal.II/include/deal.II/fe/fe_bdm.h @@ -37,7 +37,7 @@ DEAL_II_NAMESPACE_OPEN * * @todo This is for 2D only. * - * @todo Transformation works only for uniform, Cartesian meshes. + * @todo Restriction matrices are missing. * * The matching pressure space for FE_BDM of order k is the * element FE_DGP of order k. diff --git a/deal.II/include/deal.II/fe/fe_dgp.h b/deal.II/include/deal.II/fe/fe_dgp.h index 6343a7c637..9fd6a5f04a 100644 --- a/deal.II/include/deal.II/fe/fe_dgp.h +++ b/deal.II/include/deal.II/fe/fe_dgp.h @@ -331,7 +331,8 @@ public: * Returns a list of constant modes of the element. For this element, the * first entry is true, all other are false. */ - virtual Table<2,bool> get_constant_modes () const; + virtual std::pair, std::vector > + get_constant_modes () const; protected: diff --git a/deal.II/include/deal.II/fe/fe_dgq.h b/deal.II/include/deal.II/fe/fe_dgq.h index 103c135c7e..ec0c7f9e18 100644 --- a/deal.II/include/deal.II/fe/fe_dgq.h +++ b/deal.II/include/deal.II/fe/fe_dgq.h @@ -331,7 +331,8 @@ public: * Returns a list of constant modes of the element. For this element, it * simply returns one row with all entries set to true. */ - virtual Table<2,bool> get_constant_modes () const; + virtual std::pair, std::vector > + get_constant_modes () const; /** * Determine an estimate for the diff --git a/deal.II/include/deal.II/fe/fe_face.h b/deal.II/include/deal.II/fe/fe_face.h index f6bd4606b5..2ee366f50f 100644 --- a/deal.II/include/deal.II/fe/fe_face.h +++ b/deal.II/include/deal.II/fe/fe_face.h @@ -128,7 +128,8 @@ public: * Returns a list of constant modes of the element. For this element, it * simply returns one row with all entries set to true. */ - virtual Table<2,bool> get_constant_modes () const; + virtual std::pair, std::vector > + get_constant_modes () const; private: /** @@ -230,7 +231,8 @@ public: * Returns a list of constant modes of the element. For this element, it * simply returns one row with all entries set to true. */ - virtual Table<2,bool> get_constant_modes () const; + virtual std::pair, std::vector > + get_constant_modes () const; protected: virtual @@ -437,9 +439,10 @@ public: * Returns a list of constant modes of the element. For this element, the * first entry on each face is true, all other are false (as the constant * function is represented by the first base function of Legendre - * polynomials. + * polynomials). */ - virtual Table<2,bool> get_constant_modes () const; + virtual std::pair, std::vector > + get_constant_modes () const; private: /** diff --git a/deal.II/include/deal.II/fe/fe_nedelec.h b/deal.II/include/deal.II/fe/fe_nedelec.h index 81dad103af..f09e5010bd 100644 --- a/deal.II/include/deal.II/fe/fe_nedelec.h +++ b/deal.II/include/deal.II/fe/fe_nedelec.h @@ -285,7 +285,8 @@ public: /** * Returns a list of constant modes of the element. */ - virtual Table<2,bool> get_constant_modes () const; + virtual std::pair, std::vector > + get_constant_modes () const; virtual std::size_t memory_consumption () const; virtual FiniteElement *clone() const; diff --git a/deal.II/include/deal.II/fe/fe_q_base.h b/deal.II/include/deal.II/fe/fe_q_base.h index 6870f28fd2..6bfb8a2ace 100644 --- a/deal.II/include/deal.II/fe/fe_q_base.h +++ b/deal.II/include/deal.II/fe/fe_q_base.h @@ -199,7 +199,8 @@ public: * Returns a list of constant modes of the element. For this element, the * list consists of true arguments for all components. */ - virtual Table<2,bool> get_constant_modes () const; + virtual std::pair, std::vector > + get_constant_modes () const; /** * @name Functions to support hp diff --git a/deal.II/include/deal.II/fe/fe_q_dg0.h b/deal.II/include/deal.II/fe/fe_q_dg0.h index 6f0f339e01..90b28f579a 100644 --- a/deal.II/include/deal.II/fe/fe_q_dg0.h +++ b/deal.II/include/deal.II/fe/fe_q_dg0.h @@ -312,6 +312,15 @@ public: virtual bool has_support_on_face (const unsigned int shape_index, const unsigned int face_index) const; + /** + * Returns a list of constant modes of the element. For this element, there + * are two constant modes despite the element is scalar: The first constant + * mode is all ones for the usual FE_Q basis and the second one only using + * the discontinuous part. + */ + virtual std::pair, std::vector > + get_constant_modes () const; + protected: /** * @p clone function instead of a copy constructor. diff --git a/deal.II/include/deal.II/fe/fe_q_hierarchical.h b/deal.II/include/deal.II/fe/fe_q_hierarchical.h index fd6602c5b1..64d3b644cf 100644 --- a/deal.II/include/deal.II/fe/fe_q_hierarchical.h +++ b/deal.II/include/deal.II/fe/fe_q_hierarchical.h @@ -386,7 +386,8 @@ public: * list consists of true arguments for the first vertex shape functions and * false for the remaining ones. */ - virtual Table<2,bool> get_constant_modes () const; + virtual std::pair, std::vector > + get_constant_modes () const; protected: /** diff --git a/deal.II/include/deal.II/fe/fe_raviart_thomas.h b/deal.II/include/deal.II/fe/fe_raviart_thomas.h index bda93239da..01182aef01 100644 --- a/deal.II/include/deal.II/fe/fe_raviart_thomas.h +++ b/deal.II/include/deal.II/fe/fe_raviart_thomas.h @@ -148,10 +148,11 @@ public: const VectorSlice > > &values) const; /** - * Returns a list of constant modes of the element. For this element, the - * list consists of true arguments for all components. + * Returns a list of constant modes of the element. This method is currently + * not correctly implemented because it returns ones for all components. */ - virtual Table<2,bool> get_constant_modes () const; + virtual std::pair, std::vector > + get_constant_modes () const; virtual std::size_t memory_consumption () const; virtual FiniteElement *clone() const; diff --git a/deal.II/include/deal.II/fe/fe_system.h b/deal.II/include/deal.II/fe/fe_system.h index 7022cdd694..3744e734cc 100644 --- a/deal.II/include/deal.II/fe/fe_system.h +++ b/deal.II/include/deal.II/fe/fe_system.h @@ -214,7 +214,7 @@ public: /** * Same as above but for any number of base elements. Pointers to the base * elements and their multiplicities are passed as vectors to this - * constructor. The length of these vectors is assumed to be equal. + * constructor. The lengths of these vectors are assumed to be equal. */ FESystem (const std::vector*> &fes, @@ -476,7 +476,8 @@ public: * table contains a basis representation of the constant function 1 on the * element. Concatenates the constant modes of each base element. */ - virtual Table<2,bool> get_constant_modes () const; + virtual std::pair, std::vector > + get_constant_modes () const; /** * @name Functions to support hp diff --git a/deal.II/include/deal.II/fe/mapping.h b/deal.II/include/deal.II/fe/mapping.h index 59975c1929..95eb1d3056 100644 --- a/deal.II/include/deal.II/fe/mapping.h +++ b/deal.II/include/deal.II/fe/mapping.h @@ -22,7 +22,6 @@ #include #include #include -#include #include #include @@ -80,10 +79,8 @@ enum MappingType */ mapping_piola = 0x0100, /** - transformation for the gradient of - for a vector field - correspoing to a mapping_piola - transformation (see Mapping::transform() for details). + transformation for the gradient of a vector field corresponding to a + mapping_piola transformation (see Mapping::transform() for details). */ mapping_piola_gradient = 0x0101, diff --git a/deal.II/include/deal.II/grid/grid_generator.h b/deal.II/include/deal.II/grid/grid_generator.h index 0c708ab4ea..efdd65a8ae 100644 --- a/deal.II/include/deal.II/grid/grid_generator.h +++ b/deal.II/include/deal.II/grid/grid_generator.h @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -681,7 +682,7 @@ namespace GridGenerator Triangulation<3,3> &result); /** - * This function transformes the @p Triangulation @p tria smoothly to a + * This function transforms the @p Triangulation @p tria smoothly to a * domain that is described by the boundary points in the map @p * new_points. This map maps the point indices to the boundary points in the * transformed domain. @@ -692,11 +693,21 @@ namespace GridGenerator * * In 1d, this function is not currently implemented. * + * An optional @p coefficient for the Laplace problem an be used to control the amount of + * mesh deformation in different parts of the domain. + * Larger values make cells less prone to deformation (effectively increasing their stiffness). + * The coefficient is evaluated in the coordinate system of the old, + * undeformed configuration of the triangulation as input, i.e., before + * the transformation is applied. + * Should this function be provided, sensible results can only be expected if + * all coefficients are positive. + * * @deprecated This function has been moved to GridTools::laplace_transform */ template void laplace_transformation (Triangulation &tria, - const std::map > &new_points) DEAL_II_DEPRECATED; + const std::map > &new_points, + const Function *coefficient = 0) DEAL_II_DEPRECATED; /** * Exception diff --git a/deal.II/include/deal.II/grid/grid_tools.h b/deal.II/include/deal.II/grid/grid_tools.h index a439b3da7b..09377b3774 100644 --- a/deal.II/include/deal.II/grid/grid_tools.h +++ b/deal.II/include/deal.II/grid/grid_tools.h @@ -236,8 +236,8 @@ namespace GridTools Triangulation<2> &triangulation); /** - * Transform the given triangulation smoothly to a different domain where - * each of the vertices at the boundary of the triangulation is mapped to + * Transform the given triangulation smoothly to a different domain where, + * typically, each of the vertices at the boundary of the triangulation is mapped to * the corresponding points in the @p new_points map. * * The way this function works is that it solves a Laplace equation for each @@ -261,11 +261,20 @@ namespace GridTools * @param[in,out] tria The Triangulation object. This object is changed in-place, * i.e., the previous locations of vertices are overwritten. * + * @param[in] coefficient An optional coefficient for the Laplace problem. + * Larger values make cells less prone to deformation (effectively increasing their stiffness). + * The coefficient is evaluated in the coordinate system of the old, + * undeformed configuration of the triangulation as input, i.e., before + * the transformation is applied. + * Should this function be provided, sensible results can only be expected if + * all coefficients are positive. + * * @note This function is not currently implemented for the 1d case. */ template void laplace_transform (const std::map > &new_points, - Triangulation &tria); + Triangulation &tria, + const Function *coefficient = 0); /** * Scale the entire triangulation diff --git a/deal.II/include/deal.II/grid/tria_accessor.h b/deal.II/include/deal.II/grid/tria_accessor.h index 9b701b0884..9b26287ef4 100644 --- a/deal.II/include/deal.II/grid/tria_accessor.h +++ b/deal.II/include/deal.II/grid/tria_accessor.h @@ -1,7 +1,7 @@ // --------------------------------------------------------------------- // $Id$ // -// Copyright (C) 1998 - 2013 by the deal.II authors +// Copyright (C) 1998 - 2014 by the deal.II authors // // This file is part of the deal.II library. // @@ -449,9 +449,20 @@ public: */ /** - * Return the level the element - * pointed to belongs to. - * This is only valid for cells. + * For cells, this function returns the level within the mesh hierarchy at + * which this cell is located. For all other objects, the function returns + * zero. + * + * @note Within a Triangulation object, cells are uniquely identified by a + * pair (level, index) where the former is the cell's + * refinement level and the latter is the index of the cell within + * this refinement level (the former being what this function + * returns). Consequently, there may be multiple cells on different + * refinement levels but with the same index within their level. + * Contrary to this, if the current object corresponds to a face or + * edge, then the object is uniquely identified solely by its index + * as faces and edges do not have a refinement level. For these objects, + * the current function always returns zero as the level. */ int level () const; @@ -460,7 +471,7 @@ public: * element presently pointed to * on the present level. * - * Within a Triangulation object cells are uniquely identified by a + * Within a Triangulation object, cells are uniquely identified by a * pair (level, index) where the former is the cell's * refinement level and the latter is the index of the cell within * this refinement level (the latter being what this function @@ -732,18 +743,6 @@ public: */ bool used () const; - /** - * Index of the parent. - * The level of the parent is one - * lower than that of the - * present cell, if the parent - * of a cell is accessed. If the - * parent does not exist, -1 is - * returned. - */ - int parent_index () const; - - /** * @name Accessing sub-objects */ @@ -1686,11 +1685,6 @@ private: */ void clear_refinement_case () const; - /** - * Set the parent of a cell. - */ - void set_parent (const unsigned int parent_index); - /** * Set the index of the ith * child. Since the children @@ -1963,12 +1957,6 @@ public: * @} */ - /** - * Index of the parent. You - * can't do this for points. - */ - static int parent_index (); - /** * @name Accessing sub-objects */ @@ -2947,12 +2935,22 @@ public: */ bool direction_flag () const; - + /** + * Index of the parent of this cell. + * The level of the parent is one + * lower than that of the + * present cell, if the parent + * of a cell is accessed. If the + * parent does not exist (i.e., if the object is at the coarsest level of + * the mesh hierarchy), an exception is generated. + */ + int parent_index () const; /** * Return an iterator to the - * parent. Throws an exception if this cell has no parent, i.e. has - * level 0. + * parent. If the + * parent does not exist (i.e., if the object is at the coarsest level of + * the mesh hierarchy), an exception is generated. */ TriaIterator > parent () const; @@ -2978,16 +2976,6 @@ public: */ bool active () const; - /** - * Ordering of accessors. This function implements a total ordering - * of cells even on a parallel::distributed::Triangulation. This - * function first compares level_subdomain_id(). If these are equal, - * and both cells are active, it compares subdomain_id(). If this is - * inconclusive, TriaAccessorBase::operator < () is called. - */ - bool operator < (const CellAccessor &other) const; - - /** * Return whether this cell is owned by the current processor * or is owned by another processor. The function always returns @@ -3212,6 +3200,11 @@ protected: private: + /** + * Set the parent of a cell. + */ + void set_parent (const unsigned int parent_index); + /** * Set the orientation of this * cell. diff --git a/deal.II/include/deal.II/grid/tria_accessor.templates.h b/deal.II/include/deal.II/grid/tria_accessor.templates.h index 6dcb43c052..0250414290 100644 --- a/deal.II/include/deal.II/grid/tria_accessor.templates.h +++ b/deal.II/include/deal.II/grid/tria_accessor.templates.h @@ -1366,20 +1366,6 @@ TriaAccessor::clear_used_flag () const } -template -int -TriaAccessor:: -parent_index () const -{ - Assert (this->present_level > 0, TriaAccessorExceptions::ExcCellHasNoParent ()); - - // the parent of two consecutive cells - // is stored only once, since it is - // the same - return this->tria->levels[this->present_level]->parents[this->present_index / 2]; -} - - template int TriaAccessor:: @@ -1638,18 +1624,6 @@ TriaAccessor::set_children (const unsigned int i, -template -void -TriaAccessor::set_parent (const unsigned int parent_index) -{ - Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed()); - Assert (this->present_level > 0, TriaAccessorExceptions::ExcCellHasNoParent ()); - this->tria->levels[this->present_level]->parents[this->present_index / 2] - = parent_index; -} - - - template void TriaAccessor::clear_children () const @@ -2277,16 +2251,6 @@ TriaAccessor<0, 1, spacedim>::operator != (const TriaAccessor &t) const - -template -inline -int -TriaAccessor<0, 1, spacedim>::parent_index () -{ - return -1; -} - - template inline unsigned int @@ -3093,6 +3057,18 @@ CellAccessor::is_artificial () const +template +inline +types::subdomain_id +CellAccessor::subdomain_id () const +{ + Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed()); + Assert (this->active(), ExcMessage("subdomains only work on active cells!")); + return this->tria->levels[this->present_level]->subdomain_ids[this->present_index]; +} + + + template inline unsigned int @@ -3109,22 +3085,6 @@ CellAccessor::neighbor_face_no (const unsigned int neighbor) const } -template -inline -bool -CellAccessor::operator < (const CellAccessor &other) const -{ - Assert (this->tria == other.tria, TriaAccessorExceptions::ExcCantCompareIterators()); - - if (level_subdomain_id() != other.level_subdomain_id()) - return (level_subdomain_id() < other.level_subdomain_id()); - - if (active() && other.active() && - (subdomain_id() != other.subdomain_id())) - return (subdomain_id() < other.subdomain_id()); - - return TriaAccessorBase::operator < (other); -} diff --git a/deal.II/include/deal.II/grid/tria_iterator.h b/deal.II/include/deal.II/grid/tria_iterator.h index fc7beb902a..013cb00bcc 100644 --- a/deal.II/include/deal.II/grid/tria_iterator.h +++ b/deal.II/include/deal.II/grid/tria_iterator.h @@ -445,21 +445,13 @@ public: /** * Ordering relation for iterators. * - * This relation attempts a total ordering of cells. For lower - * dimensional objects on distributed meshes, we only attempt a - * partial ordering. + * This relation attempts a total ordering of cells. * * The relation is defined as follows: * * For objects of Accessor::structure_dimension < * Accessor::dimension, we simply compare the index of such an - * object. This consitutes an ordering of the elements of same - * dimension on a mesh on a single process. For a distributed mesh, - * the result of the ordering relation between faces across - * processes is not defined, but most likely irrelevant. - * - * For cells, there is a total ordering even in a - * distributed::parallel::Triangulation. The ordering is lexicographic + * object. The ordering is lexicographic * according to the following hierarchy (in the sense, that the next * test is only applied if the previous was inconclusive): * @@ -468,11 +460,13 @@ public: * past-the-end iterators rank the same, thus false is returned in * that case. * - *
      28. The level subdomain id
      29. - *
      30. If both cells are active, the subdomain id.
      31. *
      32. The level of the cell.
      33. *
      34. The index of a cell inside the level.
      35. *
      + * + * @Note: the ordering is not consistent between different processor in + * a parallel::distributed::Triangulation because we rely on index(), + * which is likely not the same. */ bool operator < (const TriaRawIterator &) const; diff --git a/deal.II/include/deal.II/grid/tria_levels.h b/deal.II/include/deal.II/grid/tria_levels.h index 1bdc99ab65..90a107b544 100644 --- a/deal.II/include/deal.II/grid/tria_levels.h +++ b/deal.II/include/deal.II/grid/tria_levels.h @@ -39,7 +39,7 @@ namespace internal * In TriaLevel, all cell data is stored which is not dependent on the * dimension, e.g. a field to store the refinement flag for the cells * (what a cell actually is is declared elsewhere), etc. See also - * TriaObjects for non leveloriented data. + * TriaObjects for non level-oriented data. * * There is another field, which may fit in here, namely the * material data (for cells) or the boundary indicators (for faces), @@ -154,6 +154,11 @@ namespace internal * One integer for every consecutive * pair of cells to store which * index their parent has. + * + * (We store this information once for each pair of cells since every + * refinement, isotropic or anisotropic, and in any space dimension, + * always creates children in multiples of two, so there is no need to + * store the parent index for every cell.) */ std::vector parents; diff --git a/deal.II/include/deal.II/lac/constraint_matrix.templates.h b/deal.II/include/deal.II/lac/constraint_matrix.templates.h index 36c3304668..2cf08a4f3d 100644 --- a/deal.II/include/deal.II/lac/constraint_matrix.templates.h +++ b/deal.II/include/deal.II/lac/constraint_matrix.templates.h @@ -2798,7 +2798,7 @@ add_entries_local_to_global (const std::vector &local_dof_indices, sparsity_pattern.add_entries(actual_dof_indices[i], actual_dof_indices.begin(), actual_dof_indices.end(), - true); + true); // need to add the whole row and column structure in case we keep // constrained entries. Unfortunately, we can't use the nice matrix diff --git a/deal.II/include/deal.II/lac/lapack_full_matrix.h b/deal.II/include/deal.II/lac/lapack_full_matrix.h index 92e0dd09e8..4f97d3464e 100644 --- a/deal.II/include/deal.II/lac/lapack_full_matrix.h +++ b/deal.II/include/deal.II/lac/lapack_full_matrix.h @@ -34,6 +34,7 @@ DEAL_II_NAMESPACE_OPEN template class Vector; template class BlockVector; template class FullMatrix; +template class SparseMatrix; /** @@ -54,6 +55,7 @@ template class LAPACKFullMatrix : public TransposeTable { public: + /** * Declare type for container size. */ @@ -68,7 +70,8 @@ public: * * By default, no memory is allocated. */ - explicit LAPACKFullMatrix (const size_type n = 0); + explicit LAPACKFullMatrix (const size_type size = 0); + /** * Constructor. Initialize the matrix as a rectangular matrix. @@ -76,6 +79,7 @@ public: LAPACKFullMatrix (const size_type rows, const size_type cols); + /** * Copy constructor. This constructor does a deep copy of the * matrix. Therefore, it poses a possible efficiency problem, if for @@ -95,14 +99,23 @@ public: operator = (const LAPACKFullMatrix &); /** - * Assignment operator for a regular FullMatrix. Note that since LAPACK - * expects matrices in transposed order, this transposition is included - * here. + * Assignment operator from a regular FullMatrix. @note Since LAPACK + * expects matrices in transposed order, this transposition is + * included here. */ template LAPACKFullMatrix & operator = (const FullMatrix &); + /** + * Assignment operator from a regular SparseMatrix. @note Since + * LAPACK expects matrices in transposed order, this transposition + * is included here. + */ + template + LAPACKFullMatrix & + operator = (const SparseMatrix &); + /** * This operator assigns a scalar to a matrix. To avoid confusion with * constructors, zero is the only value allowed for d @@ -119,6 +132,33 @@ public: template void copy_from (const MATRIX &); + /** + * Regenerate the current matrix by one that has the same properties + * as if it were created by the constructor of this class with the + * same argument list as this present function. + */ + void reinit (const size_type size); + + /** + * Regenerate the current matrix by one that has the same properties + * as if it were created by the constructor of this class with the + * same argument list as this present function. + */ + void reinit (const size_type rows, + const size_type cols); + + /** + * Return the dimension of the range space. @note The matrix is of + * dimension $m \times n$. + */ + unsigned int m () const; + + /** + * Return the number of the range space. @note The matrix is of + * dimension $m \times n$. + */ + unsigned int n () const; + /** * Fill rectangular block. * @@ -358,7 +398,7 @@ public: * system is to be performed. */ void apply_lu_factorization (Vector &v, - const bool transposed) const; + const bool transposed) const; /** * Solve the linear system with multiple right hand sides (as many as there @@ -370,7 +410,7 @@ public: * system is to be performed. */ void apply_lu_factorization (LAPACKFullMatrix &B, - const bool transposed) const; + const bool transposed) const; /** * Compute eigenvalues of the matrix. After this routine has been called, @@ -391,7 +431,7 @@ public: * @note Calls the LAPACK function Xgeev. */ void compute_eigenvalues (const bool right_eigenvectors = false, - const bool left_eigenvectors = false); + const bool left_eigenvectors = false); /** * Compute eigenvalues and eigenvectors of a real symmetric matrix. Only @@ -411,12 +451,11 @@ public: * @note Calls the LAPACK function Xsyevx. For this to work, ./configure has * to be told to use LAPACK. */ - void compute_eigenvalues_symmetric( - const number lower_bound, - const number upper_bound, - const number abs_accuracy, - Vector &eigenvalues, - FullMatrix &eigenvectors); + void compute_eigenvalues_symmetric (const number lower_bound, + const number upper_bound, + const number abs_accuracy, + Vector &eigenvalues, + FullMatrix &eigenvectors); /** * Compute generalized eigenvalues and eigenvectors of a real generalized @@ -439,14 +478,13 @@ public: * @note Calls the LAPACK function Xsygvx. For this to work, ./configure has * to be told to use LAPACK. */ - void compute_generalized_eigenvalues_symmetric( - LAPACKFullMatrix &B, - const number lower_bound, - const number upper_bound, - const number abs_accuracy, - Vector &eigenvalues, - std::vector > &eigenvectors, - const int itype = 1); + void compute_generalized_eigenvalues_symmetric (LAPACKFullMatrix &B, + const number lower_bound, + const number upper_bound, + const number abs_accuracy, + Vector &eigenvalues, + std::vector > &eigenvectors, + const int itype = 1); /** * Same as the other compute_generalized_eigenvalues_symmetric function @@ -464,10 +502,9 @@ public: * @note Calls the LAPACK function Xsygv. For this to work, ./configure has * to be told to use LAPACK. */ - void compute_generalized_eigenvalues_symmetric ( - LAPACKFullMatrix &B, - std::vector > &eigenvectors, - const int itype = 1); + void compute_generalized_eigenvalues_symmetric (LAPACKFullMatrix &B, + std::vector > &eigenvectors, + const int itype = 1); /** * Compute the singular value decomposition of the matrix using LAPACK @@ -477,7 +514,7 @@ public: * #wr, #svd_u, and #svd_vt, and leaves the object in the #state * LAPACKSupport::svd. */ - void compute_svd(); + void compute_svd (); /** * Compute the inverse of the matrix by singular value decomposition. @@ -544,9 +581,11 @@ public: const double threshold = 0.) const; private: + /** - * Since LAPACK operations notoriously change the meaning of the matrix - * entries, we record the current state after the last operation here. + * Since LAPACK operations notoriously change the meaning of the + * matrix entries, we record the current state after the last + * operation here. */ LAPACKSupport::State state; @@ -636,7 +675,23 @@ private: SmartPointer >,PreconditionLU > mem; }; +/*---------------------- Inline functions -----------------------------------*/ +template +inline +unsigned int +LAPACKFullMatrix::m () const +{ + return this->n_rows (); +} + +template +inline +unsigned int +LAPACKFullMatrix::n () const +{ + return this->n_cols (); +} template template diff --git a/deal.II/include/deal.II/lac/pointer_matrix.h b/deal.II/include/deal.II/lac/pointer_matrix.h index d430c659ab..03072f6e6b 100644 --- a/deal.II/include/deal.II/lac/pointer_matrix.h +++ b/deal.II/include/deal.II/lac/pointer_matrix.h @@ -72,8 +72,8 @@ public: /** * Virtual destructor. Does * nothing except making sure that - * the destructor of the derived - * class is called. + * the destructor of any derived + * class is called whenever a pointer-to-base-class object is destroyed. */ virtual ~PointerMatrixBase (); @@ -109,6 +109,7 @@ public: const VECTOR &src) const = 0; }; + /** * A pointer to be used as a matrix. This class stores a pointer to a * matrix and can be used as a matrix itself in iterative methods. @@ -136,9 +137,15 @@ public: PointerMatrix (const MATRIX *M=0); /** - * Constructor. The name argument - * is used to identify the - * SmartPointer for this object. + * Constructor. + * + * This class internally stores a pointer to a matrix via a SmartPointer + * object. The SmartPointer class allows to associate a name with the + * object pointed to that identifies the object that has the pointer, + * in order to identify objects that still refer to the object pointed to. + * The @p name argument to this function + * is used to this end, i.e., you can in essence assign a name to + * the current PointerMatrix object. */ PointerMatrix(const char *name); @@ -146,10 +153,15 @@ public: * Constructor. M points * to a matrix which must live * longer than the - * PointerMatrix. The name - * argument is used to identify - * the SmartPointer for this - * object. + * PointerMatrix. + * + * This class internally stores a pointer to a matrix via a SmartPointer + * object. The SmartPointer class allows to associate a name with the + * object pointed to that identifies the object that has the pointer, + * in order to identify objects that still refer to the object pointed to. + * The @p name argument to this function + * is used to this end, i.e., you can in essence assign a name to + * the current PointerMatrix object. */ PointerMatrix(const MATRIX *M, const char *name); @@ -243,9 +255,15 @@ public: /** * Constructor not using a - * matrix. The name argument is - * used to identify the - * SmartPointer for this object. + * matrix. + * + * This class internally stores a pointer to a matrix via a SmartPointer + * object. The SmartPointer class allows to associate a name with the + * object pointed to that identifies the object that has the pointer, + * in order to identify objects that still refer to the object pointed to. + * The @p name argument to this function + * is used to this end, i.e., you can in essence assign a name to + * the current PointerMatrix object. */ PointerMatrixAux(VectorMemory *mem, const char *name); @@ -254,10 +272,15 @@ public: * Constructor. M points * to a matrix which must live * longer than the - * PointerMatrixAux. The name - * argument is used to identify - * the SmartPointer for this - * object. + * PointerMatrixAux. + * + * This class internally stores a pointer to a matrix via a SmartPointer + * object. The SmartPointer class allows to associate a name with the + * object pointed to that identifies the object that has the pointer, + * in order to identify objects that still refer to the object pointed to. + * The @p name argument to this function + * is used to this end, i.e., you can in essence assign a name to + * the current PointerMatrix object. */ PointerMatrixAux(VectorMemory *mem, const MATRIX *M, @@ -361,9 +384,15 @@ public: PointerMatrixVector (const Vector *M=0); /** - * Constructor. The name argument - * is used to identify the - * SmartPointer for this object. + * Constructor. + * + * This class internally stores a pointer to a matrix via a SmartPointer + * object. The SmartPointer class allows to associate a name with the + * object pointed to that identifies the object that has the pointer, + * in order to identify objects that still refer to the object pointed to. + * The @p name argument to this function + * is used to this end, i.e., you can in essence assign a name to + * the current PointerMatrix object. */ PointerMatrixVector (const char *name); @@ -371,10 +400,15 @@ public: * Constructor. M points * to a matrix which must live * longer than the - * PointerMatrix. The name - * argument is used to identify - * the SmartPointer for this - * object. + * PointerMatrix. + * + * This class internally stores a pointer to a matrix via a SmartPointer + * object. The SmartPointer class allows to associate a name with the + * object pointed to that identifies the object that has the pointer, + * in order to identify objects that still refer to the object pointed to. + * The @p name argument to this function + * is used to this end, i.e., you can in essence assign a name to + * the current PointerMatrix object. */ PointerMatrixVector (const Vector *M, const char *name); diff --git a/deal.II/include/deal.II/lac/sparse_matrix.h b/deal.II/include/deal.II/lac/sparse_matrix.h index 2674965466..037913ea1d 100644 --- a/deal.II/include/deal.II/lac/sparse_matrix.h +++ b/deal.II/include/deal.II/lac/sparse_matrix.h @@ -1,7 +1,7 @@ // --------------------------------------------------------------------- // $Id$ // -// Copyright (C) 1999 - 2013 by the deal.II authors +// Copyright (C) 1999 - 2014 by the deal.II authors // // This file is part of the deal.II library. // @@ -24,7 +24,6 @@ #include #include #include -// Included for VectorOperation #include DEAL_II_NAMESPACE_OPEN diff --git a/deal.II/include/deal.II/lac/sparse_matrix.templates.h b/deal.II/include/deal.II/lac/sparse_matrix.templates.h index 01caf34c11..04a54fd2e8 100644 --- a/deal.II/include/deal.II/lac/sparse_matrix.templates.h +++ b/deal.II/include/deal.II/lac/sparse_matrix.templates.h @@ -1,7 +1,7 @@ // --------------------------------------------------------------------- // $Id$ // -// Copyright (C) 1999 - 2013 by the deal.II authors +// Copyright (C) 1999 - 2014 by the deal.II authors // // This file is part of the deal.II library. // @@ -1052,7 +1052,7 @@ SparseMatrix::mmult (SparseMatrix &C, &B.val[new_cols-&sp_B.colnums[sp_B.rowstart[0]]]; const numberB *const end_cols = &B.val[sp_B.rowstart[col+1]]; for (; B_val_ptr != end_cols; ++B_val_ptr) - *new_ptr++ = A_val **B_val_ptr * (use_vector ? V(col) : 1); + *new_ptr++ = A_val * *B_val_ptr * (use_vector ? V(col) : 1); C.add (i, new_ptr-&new_entries[0], new_cols, &new_entries[0], false, true); diff --git a/deal.II/include/deal.II/lac/sparse_matrix_ez.h b/deal.II/include/deal.II/lac/sparse_matrix_ez.h index f4d45cad38..928300221c 100644 --- a/deal.II/include/deal.II/lac/sparse_matrix_ez.h +++ b/deal.II/include/deal.II/lac/sparse_matrix_ez.h @@ -1,7 +1,7 @@ // --------------------------------------------------------------------- // $Id$ // -// Copyright (C) 2002 - 2013 by the deal.II authors +// Copyright (C) 2002 - 2014 by the deal.II authors // // This file is part of the deal.II library. // @@ -1077,14 +1077,6 @@ private: * Increment when a row grows. */ unsigned int increment; - - /** - * Make member classes - * friends. Not strictly - * necessary according to the - * standard, but some compilers - * require this... - */ }; /** diff --git a/deal.II/include/deal.II/lac/trilinos_precondition.h b/deal.II/include/deal.II/lac/trilinos_precondition.h index eb8747a34d..ba1d6ce23e 100644 --- a/deal.II/include/deal.II/lac/trilinos_precondition.h +++ b/deal.II/include/deal.II/lac/trilinos_precondition.h @@ -1420,6 +1420,11 @@ namespace TrilinosWrappers const char* coarse_type; }; + /** + * Destructor. + */ + ~PreconditionAMG(); + /** * Let Trilinos compute a multilevel hierarchy for the solution of a diff --git a/deal.II/include/deal.II/lac/vector.templates.h b/deal.II/include/deal.II/lac/vector.templates.h index 3f64f3e5ce..881dd58c5c 100644 --- a/deal.II/include/deal.II/lac/vector.templates.h +++ b/deal.II/include/deal.II/lac/vector.templates.h @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -586,7 +587,8 @@ namespace internal const Number2 *Y, const ResultType power, const size_type vec_size, - ResultType &result) + ResultType &result, + const int depth = -1) { if (vec_size <= 4096) { @@ -672,29 +674,39 @@ namespace internal result = outer_results[0]; } #ifdef DEAL_II_WITH_THREADS - else if (vec_size > 4 * internal::Vector::minimum_parallel_grain_size) + else if (multithread_info.n_threads() > 1 && + vec_size > 4 * internal::Vector::minimum_parallel_grain_size && + depth != 0) { - // split the vector into smaller pieces to be - // worked on recursively and create tasks for - // them. Make pieces divisible by 1024. + // split the vector into smaller pieces to be worked on recursively + // and create tasks for them. Make pieces divisible by 1024. const size_type new_size = (vec_size / 4096) * 1024; ResultType r0, r1, r2, r3; + + // find out how many recursions we should make (avoid too deep + // hierarchies of tasks on large vectors), max use 8 * + // multithread_info.n_threads() + int next_depth = depth; + if (depth == -1) + next_depth = 8 * multithread_info.n_threads(); + next_depth /= 4; + Threads::TaskGroup<> task_group; task_group += Threads::new_task(&accumulate, - op, X, Y, power, new_size, r0); + op, X, Y, power, new_size, r0, next_depth); task_group += Threads::new_task(&accumulate, op, X+new_size, Y+new_size, power, - new_size, r1); + new_size, r1, next_depth); task_group += Threads::new_task(&accumulate, op, X+2*new_size, Y+2*new_size, power, - new_size, r2); + new_size, r2, next_depth); task_group += Threads::new_task(&accumulate, op, X+3*new_size, Y+3*new_size, power, - vec_size-3*new_size, r3); + vec_size-3*new_size, r3, next_depth); task_group.join_all(); r0 += r1; r2 += r3; diff --git a/deal.II/include/deal.II/matrix_free/dof_info.templates.h b/deal.II/include/deal.II/matrix_free/dof_info.templates.h index 3431748971..9dcd2d8aad 100644 --- a/deal.II/include/deal.II/matrix_free/dof_info.templates.h +++ b/deal.II/include/deal.II/matrix_free/dof_info.templates.h @@ -830,9 +830,8 @@ no_constraint: // set up partitions. if we just use coloring without partitions, do // nothing here, assume all cells to belong to the zero partition (that // we otherwise use for MPI boundary cells) - unsigned int partition = 0, start_up = 0, counter = 0; - unsigned int start_nonboundary = numbers::invalid_unsigned_int; - bool work = true; + unsigned int start_up = 0, + start_nonboundary = numbers::invalid_unsigned_int; if (task_info.use_coloring_only == false) { start_nonboundary = @@ -920,6 +919,8 @@ no_constraint: true, connectivity); // Create cell-block partitioning. + unsigned int partition = 0, counter = 0; + bool work = true; // For each block of cells, this variable saves to which partitions the // block belongs. Initialize all to n_macro_cells to mark them as not @@ -1131,8 +1132,8 @@ no_constraint: } #endif AssertDimension(counter,size_info.n_active_cells); - task_info.evens = (partition+1)>>1; - task_info.odds = (partition)>>1; + task_info.evens = (partition+1)/2; + task_info.odds = (partition)/2; task_info.n_blocked_workers = task_info.odds- (task_info.odds+task_info.evens+1)%2; task_info.n_workers = task_info.partition_color_blocks_data.size()-1- diff --git a/deal.II/include/deal.II/matrix_free/mapping_info.templates.h b/deal.II/include/deal.II/matrix_free/mapping_info.templates.h index 74051a1c85..f93060e5b7 100644 --- a/deal.II/include/deal.II/matrix_free/mapping_info.templates.h +++ b/deal.II/include/deal.II/matrix_free/mapping_info.templates.h @@ -850,7 +850,7 @@ namespace internal memory += MemoryConsumption::memory_consumption (affine_data); memory += MemoryConsumption::memory_consumption (cartesian_data); memory += MemoryConsumption::memory_consumption (cell_type); - memory += sizeof (this); + memory += sizeof (*this); return memory; } diff --git a/deal.II/include/deal.II/matrix_free/matrix_free.templates.h b/deal.II/include/deal.II/matrix_free/matrix_free.templates.h index ad08fa64aa..c01b4bc4d1 100644 --- a/deal.II/include/deal.II/matrix_free/matrix_free.templates.h +++ b/deal.II/include/deal.II/matrix_free/matrix_free.templates.h @@ -762,7 +762,7 @@ std::size_t MatrixFree::memory_consumption () const memory += MemoryConsumption::memory_consumption (constraint_pool_data); memory += MemoryConsumption::memory_consumption (constraint_pool_row_index); memory += MemoryConsumption::memory_consumption (task_info); - memory += sizeof(this); + memory += sizeof(*this); memory += mapping_info.memory_consumption(); return memory; } @@ -853,7 +853,8 @@ namespace internal std::size_t TaskInfo::memory_consumption () const { - return (MemoryConsumption::memory_consumption (partition_color_blocks_row_index) + + return (sizeof(*this)+ + MemoryConsumption::memory_consumption (partition_color_blocks_row_index) + MemoryConsumption::memory_consumption (partition_color_blocks_data)+ MemoryConsumption::memory_consumption (partition_evens) + MemoryConsumption::memory_consumption (partition_odds) + diff --git a/deal.II/include/deal.II/meshworker/loop.h b/deal.II/include/deal.II/meshworker/loop.h index 22110233a2..cebc7916ae 100644 --- a/deal.II/include/deal.II/meshworker/loop.h +++ b/deal.II/include/deal.II/meshworker/loop.h @@ -308,8 +308,9 @@ namespace MeshWorker // Now neighbor is on same level, double-check this: Assert(cell->level()==neighbor->level(), ExcInternalError()); - // only do faces on same level from one side (unless - // LoopControl says otherwise) + // If we own both cells only do faces from one side (unless + // LoopControl says otherwise). Here, we rely on cell comparison + // that will look at cell->index(). if (own_cell && own_neighbor && loop_control.own_faces == LoopControl::one && (neighbor < cell)) @@ -321,13 +322,13 @@ namespace MeshWorker if (!own_cell) continue; - // now only one processor assembles faces_to_ghost. This - // logic is based on the subdomain id and is handled inside - // operator<. + // now only one processor assembles faces_to_ghost. We let the + // processor with the smaller (level-)subdomain id assemble the + // face. if (own_cell && !own_neighbor && loop_control.faces_to_ghost == LoopControl::one - && (neighbor < cell)) - continue; + && (neighbid < csid)) + continue; const unsigned int neighbor_face_no = cell->neighbor_face_no(face_no); Assert (neighbor->face(neighbor_face_no) == face, ExcInternalError()); diff --git a/deal.II/include/deal.II/numerics/derivative_approximation.h b/deal.II/include/deal.II/numerics/derivative_approximation.h index 660365f7b1..7b43be8151 100644 --- a/deal.II/include/deal.II/numerics/derivative_approximation.h +++ b/deal.II/include/deal.II/numerics/derivative_approximation.h @@ -270,24 +270,24 @@ namespace DerivativeApproximation * In a parallel computation the @p solution vector needs to contain the * locally relevant unknowns. */ - template class DH, class InputVector, int order, int spacedim> + template void - approximate_derivative_tensor (const Mapping &mapping, - const DH &dof, + approximate_derivative_tensor (const Mapping &mapping, + const DH &dof, const InputVector &solution, - const typename DH::active_cell_iterator &cell, - Tensor &derivative, + const typename DH::active_cell_iterator &cell, + Tensor &derivative, const unsigned int component = 0); /** * Same as above, with mapping=MappingQ1@(). */ - template class DH, class InputVector, int order, int spacedim> + template void - approximate_derivative_tensor (const DH &dof, + approximate_derivative_tensor (const DH &dof, const InputVector &solution, - const typename DH::active_cell_iterator &cell, - Tensor &derivative, + const typename DH::active_cell_iterator &cell, + Tensor &derivative, const unsigned int component = 0); /** diff --git a/deal.II/include/deal.II/numerics/vector_tools.h b/deal.II/include/deal.II/numerics/vector_tools.h index b1570b6c67..59c74cfccc 100644 --- a/deal.II/include/deal.II/numerics/vector_tools.h +++ b/deal.II/include/deal.II/numerics/vector_tools.h @@ -1471,17 +1471,18 @@ namespace VectorTools /** - * This function computes the constraints that correspond to boundary conditions of the - * form $\vec n \cdot \vec u=0$, i.e. no normal flux if $\vec u$ is a - * vector-valued quantity. These conditions have exactly the form handled by - * the ConstraintMatrix class, so instead of creating a map between boundary - * degrees of freedom and corresponding value, we here create a list of - * constraints that are written into a ConstraintMatrix. This object may - * already have some content, for example from hanging node constraints, - * that remains untouched. These constraints have to be applied to the - * linear system like any other such constraints, i.e. you have to condense - * the linear system with the constraints before solving, and you have to - * distribute the solution vector afterwards. + * This function computes the constraints that correspond to boundary + * conditions of the form $\vec u \cdot \vec n=\vec u_\Gamma \cdot \vec n$, + * i.e. normal flux constraints if $\vec u$ is a vector-valued quantity. + * These conditions have exactly the form handled by the ConstraintMatrix + * class, so instead of creating a map between boundary degrees of freedom + * and corresponding value, we here create a list of constraints that are + * written into a ConstraintMatrix. This object may already have some + * content, for example from hanging node constraints, that remains + * untouched. These constraints have to be applied to the linear system + * like any other such constraints, i.e. you have to condense the linear + * system with the constraints before solving, and you have to distribute + * the solution vector afterwards. * * The use of this function is explained in more detail in step-31. It * doesn't make much sense in 1d, so the function throws an exception in @@ -1494,11 +1495,11 @@ namespace VectorTools * first_vector_component would be zero. On the other hand, if we solved the * Maxwell equations in 3d and the finite element has components * $(E_x,E_y,E_z,B_x,B_y,B_z)$ and we want the boundary condition $\vec - * n\cdot \vec B=0$, then @p first_vector_component would be 3. Vectors are - * implicitly assumed to have exactly dim components that are - * ordered in the same way as we usually order the coordinate directions, - * i.e. $x$-, $y$-, and finally $z$-component. The function assumes, but - * can't check, that the vector components in the range + * B\cdot \vec n=\vec B_\Gamma\cdot \vec n$, then @p first_vector_component + * would be 3. Vectors are implicitly assumed to have exactly dim + * components that are ordered in the same way as we usually order the + * coordinate directions, i.e. $x$-, $y$-, and finally $z$-component. The + * function assumes, but can't check, that the vector components in the range * [first_vector_component,first_vector_component+dim) come * from the same base finite element. For example, in the Stokes example * above, it would not make sense to use a @@ -1515,6 +1516,9 @@ namespace VectorTools * call the function onces with the whole set of boundary indicators at * once. * + * The forth parameter describes the boundary function that is used for + * computing these constraints. + * * The mapping argument is used to compute the boundary points where the * function needs to request the normal vector $\vec n$ from the boundary * description. @@ -1542,20 +1546,22 @@ namespace VectorTools * right are meant to approximate a curved boundary (as indicated by the * dashed line), then neither of the two computed normal vectors are equal * to the exact normal vector (though they approximate it as the mesh is - * refined further). What is worse, if we constrain $\vec n \cdot \vec u=0$ - * at the common vertex with the normal vector from both cells, then we - * constrain the vector $\vec u$ with respect to two linearly independent - * vectors; consequently, the constraint would be $\vec u=0$ at this point - * (i.e. all components of the vector), which is not what we wanted. + * refined further). What is worse, if we constrain $\vec u \cdot \vec n= + * \vec u_\Gamma \cdot \vec n$ at the common vertex with the normal vector + * from both cells, then we constrain the vector $\vec u$ with respect to + * two linearly independent vectors; consequently, the constraint would be + * $\vec u=\vec u_\Gamma$ at this point (i.e. all components of the + * vector), which is not what we wanted. * * To deal with this situation, the algorithm works in the following way: at * each point where we want to constrain $\vec u$, we first collect all * normal vectors that adjacent cells might compute at this point. We then - * do not constrain $\vec n \cdot \vec u=0$ for each of these normal - * vectors but only for the average of the normal vectors. In the - * example above, we therefore record only a single constraint $\vec n \cdot - * \vec {\bar u}=0$, where $\vec {\bar u}$ is the average of the two - * indicated normal vectors. + * do not constrain $\vec u \cdot \vec n=\vec u_\Gamma \cdot \vec n$ for + * each of these normal vectors but only for the average of + * the normal vectors. In the example above, we therefore record only a + * single constraint $\vec u \cdot \vec {\bar n}=\vec u_\Gamma \cdot \vec + * {\bar n}$, where $\vec {\bar n}$ is the average of the two indicated + * normal vectors. * * Unfortunately, this is not quite enough. Consider the situation here: * @@ -1598,7 +1604,7 @@ namespace VectorTools * point per invocation (because we consider only one boundary part at a * time), with the result that the normal vectors will not be averaged. This * situation also needs to be taken into account when using this function - * around reentrant corners on Cartesian meshes. If no-normal-flux boundary + * around reentrant corners on Cartesian meshes. If normal-flux boundary * conditions are to be enforced on non-Cartesian meshes around reentrant * corners, one may even get cycles in the constraints as one will in * general constrain different components from the two sides. In that case, @@ -1632,7 +1638,7 @@ namespace VectorTools * front faces of the left cell belong to the boundary selected whereas only * the top face of the right cell belongs to it, maybe indicating the the entire * front part of the domain is a smooth manifold whereas the top really forms - * two separate manifolds that meet in a ridge, and that no-flux boundary + * two separate manifolds that meet in a ridge, and that normal-flux boundary * conditions are only desired on the front manifold and the right one on top. * In cases like these, it's difficult to define what should happen. The * current implementation simply ignores the one contribution from the @@ -1667,6 +1673,22 @@ namespace VectorTools */ template class DH, int spacedim> void + compute_nonzero_normal_flux_constraints (const DH &dof_handler, + const unsigned int first_vector_component, + const std::set &boundary_ids, + typename FunctionMap::type &function_map, + ConstraintMatrix &constraints, + const Mapping &mapping = StaticMappingQ1::mapping); + + /** + * Same as above for homogeneous normal-flux constraints. + * + * @ingroup constraints + * + * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators" + */ + template class DH, int spacedim> + void compute_no_normal_flux_constraints (const DH &dof_handler, const unsigned int first_vector_component, const std::set &boundary_ids, @@ -1675,14 +1697,32 @@ namespace VectorTools /** * Compute the constraints that correspond to boundary conditions of the - * form $\vec n \times \vec u=0$. This corresponds to flow with no tangential - * component, i.e. flow is parallel to the normal vector to the boundary if $\vec - * u$ is a vector-valued quantity. - * - * This function constrains exactly those - * vector-valued components that are left unconstrained by - * compute_no_normal_flux_constraints, and leaves the one component - * unconstrained that is constrained by compute_no_normal_flux_constraints. + * form $\vec u \times \vec n=\vec u_\Gamma \times \vec n$, i.e. tangential + * flow constraints if $\vec u$ is a vector-valued quantity. This function + * constrains exactly those vector-valued components that are left + * unconstrained by compute_no_normal_flux_constraints, and leaves the one + * component unconstrained that is constrained by + * compute_no_normal_flux_constraints. + * + * @ingroup constraints + * + * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators" + */ + template class DH, int spacedim> + void + compute_nonzero_tangential_flux_constraints (const DH &dof_handler, + const unsigned int first_vector_component, + const std::set &boundary_ids, + typename FunctionMap::type &function_map, + ConstraintMatrix &constraints, + const Mapping &mapping = StaticMappingQ1::mapping); + + /** + * Same as above for homogeneous tangential-flux constraints. + * + * @ingroup constraints + * + * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators" */ template class DH, int spacedim> void diff --git a/deal.II/include/deal.II/numerics/vector_tools.templates.h b/deal.II/include/deal.II/numerics/vector_tools.templates.h index cd33a7f5f2..cef2e584ce 100644 --- a/deal.II/include/deal.II/numerics/vector_tools.templates.h +++ b/deal.II/include/deal.II/numerics/vector_tools.templates.h @@ -67,6 +67,7 @@ #include #include #include +#include DEAL_II_NAMESPACE_OPEN @@ -1713,7 +1714,7 @@ namespace VectorTools // will be used template class M_or_MC, - int dim_> + int dim_> static inline void do_interpolate_boundary_values (const M_or_MC &mapping, @@ -2468,7 +2469,7 @@ namespace VectorTools /** * Add the constraint - * $\vec n \cdot \vec u = 0$ + * $\vec n \cdot \vec u = inhom$ * to the list of constraints. * * Here, $\vec u$ is represented @@ -2485,7 +2486,8 @@ namespace VectorTools void add_constraint (const VectorDoFTuple &dof_indices, const Tensor<1,dim> &constraining_vector, - ConstraintMatrix &constraints) + ConstraintMatrix &constraints, + const double inhomogeneity=0) { // choose the DoF that has the @@ -2566,6 +2568,11 @@ namespace VectorTools constraints.add_entry (dof_indices.dof_indices[0], dof_indices.dof_indices[1], -constraining_vector[1]/constraining_vector[0]); + + if (std::fabs (inhomogeneity/constraining_vector[0]) + > std::numeric_limits::epsilon()) + constraints.set_inhomogeneity(dof_indices.dof_indices[0], + inhomogeneity/constraining_vector[0]); } } else @@ -2581,6 +2588,11 @@ namespace VectorTools constraints.add_entry (dof_indices.dof_indices[1], dof_indices.dof_indices[0], -constraining_vector[0]/constraining_vector[1]); + + if (std::fabs (inhomogeneity/constraining_vector[1]) + > std::numeric_limits::epsilon()) + constraints.set_inhomogeneity(dof_indices.dof_indices[1], + inhomogeneity/constraining_vector[1]); } } break; @@ -2609,6 +2621,11 @@ namespace VectorTools constraints.add_entry (dof_indices.dof_indices[0], dof_indices.dof_indices[2], -constraining_vector[2]/constraining_vector[0]); + + if (std::fabs (inhomogeneity/constraining_vector[0]) + > std::numeric_limits::epsilon()) + constraints.set_inhomogeneity(dof_indices.dof_indices[0], + inhomogeneity/constraining_vector[0]); } } else if ((std::fabs(constraining_vector[1])+1e-10 >= std::fabs(constraining_vector[0])) @@ -2632,6 +2649,11 @@ namespace VectorTools constraints.add_entry (dof_indices.dof_indices[1], dof_indices.dof_indices[2], -constraining_vector[2]/constraining_vector[1]); + + if (std::fabs (inhomogeneity/constraining_vector[1]) + > std::numeric_limits::epsilon()) + constraints.set_inhomogeneity(dof_indices.dof_indices[1], + inhomogeneity/constraining_vector[1]); } } else @@ -2653,6 +2675,11 @@ namespace VectorTools constraints.add_entry (dof_indices.dof_indices[2], dof_indices.dof_indices[1], -constraining_vector[1]/constraining_vector[2]); + + if (std::fabs (inhomogeneity/constraining_vector[2]) + > std::numeric_limits::epsilon()) + constraints.set_inhomogeneity(dof_indices.dof_indices[2], + inhomogeneity/constraining_vector[2]); } } @@ -2666,7 +2693,7 @@ namespace VectorTools /** - * Add the constraint $\vec u \| + * Add the constraint $(\vec u-\vec u_\Gamma) \| * \vec t$ to the list of * constraints. In 2d, this is a * single constraint, in 3d these @@ -2684,9 +2711,11 @@ namespace VectorTools */ template void - add_tangentiality_constraints (const VectorDoFTuple &dof_indices, - const Tensor<1,dim> &tangent_vector, - ConstraintMatrix &constraints) + add_tangentiality_constraints + (const VectorDoFTuple &dof_indices, + const Tensor<1,dim> &tangent_vector, + ConstraintMatrix &constraints, + const Vector &b_values = Vector(dim)) { // choose the DoF that has the @@ -2698,7 +2727,7 @@ namespace VectorTools // component 0 of the tangent // vector t is largest by // magnitude, then - // x1=t[1]/t[0]*x_0, etc. + // x1=(b[1]*t[0]-b[0]*t[1])/t[0]+t[1]/t[0]*x_0, etc. unsigned int largest_component = 0; for (unsigned int d=1; d std::fabs(tangent_vector[largest_component]) + 1e-10) @@ -2720,6 +2749,16 @@ namespace VectorTools constraints.add_entry (dof_indices.dof_indices[d], dof_indices.dof_indices[largest_component], tangent_vector[d]/tangent_vector[largest_component]); + + const double inhomogeneity + = (b_values(d)*tangent_vector[largest_component] + -b_values(largest_component)*tangent_vector[d]) + /tangent_vector[largest_component]; + + if (std::fabs(inhomogeneity) + > std::numeric_limits::epsilon()) + constraints.set_inhomogeneity(dof_indices.dof_indices[d], + inhomogeneity); } } @@ -4264,6 +4303,29 @@ namespace VectorTools const std::set &boundary_ids, ConstraintMatrix &constraints, const Mapping &mapping) + { + ZeroFunctionzero_function(dim); + typename FunctionMap::type function_map; + std::set::const_iterator it + = boundary_ids.begin(); + for (;it != boundary_ids.end(); ++it) + function_map[*it] = &zero_function; + compute_nonzero_normal_flux_constraints(dof_handler, + first_vector_component, + boundary_ids, + function_map, + constraints, + mapping); + } + + template class DH, int spacedim> + void + compute_nonzero_normal_flux_constraints (const DH &dof_handler, + const unsigned int first_vector_component, + const std::set &boundary_ids, + typename FunctionMap::type &function_map, + ConstraintMatrix &constraints, + const Mapping &mapping) { Assert (dim > 1, ExcMessage ("This function is not useful in 1d because it amounts " @@ -4284,16 +4346,15 @@ namespace VectorTools // FE hp::QCollection face_quadrature_collection; for (unsigned int i=0; i > & - unit_support_points = fe_collection[i].get_unit_face_support_points(); + { + const std::vector > & + unit_support_points = fe_collection[i].get_unit_face_support_points(); - Assert (unit_support_points.size() == fe_collection[i].dofs_per_face, - ExcInternalError()); + Assert (unit_support_points.size() == fe_collection[i].dofs_per_face, + ExcInternalError()); - face_quadrature_collection - .push_back (Quadrature (unit_support_points)); - } + face_quadrature_collection.push_back (Quadrature (unit_support_points)); + } // now create the object with which we will generate the normal vectors hp::FEFaceValues x_fe_face_values (mapping_collection, @@ -4317,6 +4378,8 @@ namespace VectorTools std::multimap, std::pair, typename DH::active_cell_iterator> > DoFToNormalsMap; + std::map, Vector > + dof_vector_to_b_values; DoFToNormalsMap dof_to_normals_map; @@ -4324,129 +4387,136 @@ namespace VectorTools typename DH::active_cell_iterator cell = dof_handler.begin_active(), endc = dof_handler.end(); + std::set::iterator b_id; for (; cell!=endc; ++cell) if (!cell->is_artificial()) for (unsigned int face_no=0; face_no < GeometryInfo::faces_per_cell; ++face_no) - if (boundary_ids.find(cell->face(face_no)->boundary_indicator()) + if ((b_id=boundary_ids.find(cell->face(face_no)->boundary_indicator())) != boundary_ids.end()) - { - const FiniteElement &fe = cell->get_fe (); - typename DH::face_iterator face = cell->face(face_no); + { + const FiniteElement &fe = cell->get_fe (); + typename DH::face_iterator face = cell->face(face_no); - // get the indices of the dofs on this cell... - face_dofs.resize (fe.dofs_per_face); - face->get_dof_indices (face_dofs, cell->active_fe_index()); + // get the indices of the dofs on this cell... + face_dofs.resize (fe.dofs_per_face); + face->get_dof_indices (face_dofs, cell->active_fe_index()); - x_fe_face_values.reinit (cell, face_no); - const FEFaceValues &fe_values = x_fe_face_values.get_present_fe_values(); + x_fe_face_values.reinit (cell, face_no); + const FEFaceValues &fe_values = x_fe_face_values.get_present_fe_values(); + + // then identify which of them correspond to the selected set of + // vector components + for (unsigned int i=0; i vector_dofs; + vector_dofs.dof_indices[0] = face_dofs[i]; + + Assert(first_vector_component+dim<=fe.n_components(), + ExcMessage("Error: the finite element does not have enough components " + "to define a normal direction.")); + + for (unsigned int k=0; kactive_fe_index()].point(k) == + face_quadrature_collection[cell->active_fe_index()].point(i)) + && + (fe.face_system_to_component_index(k).first >= + first_vector_component) + && + (fe.face_system_to_component_index(k).first < + first_vector_component + dim)) + vector_dofs.dof_indices[fe.face_system_to_component_index(k).first - + first_vector_component] + = face_dofs[k]; + + for (unsigned int d=0; d normal_vector + = (cell->face(face_no)->get_boundary().normal_vector + (cell->face(face_no), fe_values.quadrature_point(i))); + if (normal_vector * fe_values.normal_vector(i) < 0) + normal_vector *= -1; + Assert (std::fabs(normal_vector.norm() - 1) < 1e-14, + ExcInternalError()); + for (unsigned int d=0; d point + = fe_values.quadrature_point(i); + Vector b_values(dim); + function_map[*b_id]->vector_value(point, b_values); + + // now enter the (dofs,(normal_vector,cell)) entry into + // the map + dof_to_normals_map.insert + (std::make_pair (vector_dofs, + std::make_pair (normal_vector,cell))); + dof_vector_to_b_values.insert + (std::make_pair(vector_dofs, b_values)); - // then identify which of them correspond to the selected set of - // vector components - for (unsigned int i=0; i vector_dofs; - vector_dofs.dof_indices[0] = face_dofs[i]; - - Assert(first_vector_component+dim<=fe.n_components(), - ExcMessage("Error: the finite element does not have enough components " - "to define a normal direction.")); - - for (unsigned int k=0; kactive_fe_index()].point(k) == - face_quadrature_collection[cell->active_fe_index()].point(i)) - && - (fe.face_system_to_component_index(k).first >= - first_vector_component) - && - (fe.face_system_to_component_index(k).first < - first_vector_component + dim)) - vector_dofs.dof_indices[fe.face_system_to_component_index(k).first - - first_vector_component] - = face_dofs[k]; - - for (unsigned int d=0; d normal_vector - = (cell->face(face_no)->get_boundary() - .normal_vector (cell->face(face_no), - fe_values.quadrature_point(i))); - if (normal_vector * fe_values.normal_vector(i) < 0) - normal_vector *= -1; - Assert (std::fabs(normal_vector.norm() - 1) < 1e-14, - ExcInternalError()); - for (unsigned int d=0; dcenter() << std::endl - << " normal=" << normal_vector << std::endl; + std::cout << "Adding normal vector:" << std::endl + << " dofs=" << vector_dofs << std::endl + << " cell=" << cell << " at " << cell->center() << std::endl + << " normal=" << normal_vector << std::endl; #endif - } - } + } + } // Now do something with the collected information. To this end, loop // through all sets of pairs (dofs,normal_vector) and identify which @@ -4457,332 +4527,338 @@ namespace VectorTools p = dof_to_normals_map.begin(); while (p != dof_to_normals_map.end()) - { - // first find the range of entries in the multimap that corresponds to - // the same vector-dof tuple. as usual, we define the range - // half-open. the first entry of course is 'p' - typename DoFToNormalsMap::const_iterator same_dof_range[2] - = { p }; - for (++p; p != dof_to_normals_map.end(); ++p) - if (p->first != same_dof_range[0]->first) - { - same_dof_range[1] = p; - break; - } - if (p == dof_to_normals_map.end()) - same_dof_range[1] = dof_to_normals_map.end(); + { + // first find the range of entries in the multimap that corresponds to + // the same vector-dof tuple. as usual, we define the range + // half-open. the first entry of course is 'p' + typename DoFToNormalsMap::const_iterator same_dof_range[2] = { p }; + for (++p; p != dof_to_normals_map.end(); ++p) + if (p->first != same_dof_range[0]->first) + { + same_dof_range[1] = p; + break; + } + if (p == dof_to_normals_map.end()) + same_dof_range[1] = dof_to_normals_map.end(); #ifdef DEBUG_NO_NORMAL_FLUX - std::cout << "For dof indices <" << p->first << ">, found the following normals" + std::cout << "For dof indices <" << p->first << ">, found the following normals" + << std::endl; + for (typename DoFToNormalsMap::const_iterator + q = same_dof_range[0]; + q != same_dof_range[1]; ++q) + std::cout << " " << q->second.first + << " from cell " << q->second.second << std::endl; - for (typename DoFToNormalsMap::const_iterator - q = same_dof_range[0]; - q != same_dof_range[1]; ++q) - std::cout << " " << q->second.first - << " from cell " << q->second.second - << std::endl; #endif - // now compute the reverse mapping: for each of the cells that - // contributed to the current set of vector dofs, add up the normal - // vectors. the values of the map are pairs of normal vectors and - // number of cells that have contributed - typedef - std::map - ::active_cell_iterator, - std::pair, unsigned int> > + // now compute the reverse mapping: for each of the cells that + // contributed to the current set of vector dofs, add up the normal + // vectors. the values of the map are pairs of normal vectors and + // number of cells that have contributed + typedef std::map::active_cell_iterator, + std::pair, unsigned int> > CellToNormalsMap; - CellToNormalsMap cell_to_normals_map; - for (typename DoFToNormalsMap::const_iterator - q = same_dof_range[0]; - q != same_dof_range[1]; ++q) - if (cell_to_normals_map.find (q->second.second) + CellToNormalsMap cell_to_normals_map; + for (typename DoFToNormalsMap::const_iterator + q = same_dof_range[0]; + q != same_dof_range[1]; ++q) + if (cell_to_normals_map.find (q->second.second) == cell_to_normals_map.end()) cell_to_normals_map[q->second.second] = std::make_pair (q->second.first, 1U); - else - { - const Tensor<1,dim> old_normal + else + { + const Tensor<1,dim> old_normal = cell_to_normals_map[q->second.second].first; - const unsigned int old_count + const unsigned int old_count = cell_to_normals_map[q->second.second].second; - Assert (old_count > 0, ExcInternalError()); + Assert (old_count > 0, ExcInternalError()); - // in the same entry, store again the now averaged normal vector - // and the new count - cell_to_normals_map[q->second.second] - = std::make_pair ((old_normal * old_count + q->second.first) / (old_count + 1), - old_count + 1); - } - Assert (cell_to_normals_map.size() >= 1, ExcInternalError()); + // in the same entry, store again the now averaged normal vector + // and the new count + cell_to_normals_map[q->second.second] + = std::make_pair ((old_normal * old_count + q->second.first) / (old_count + 1), + old_count + 1); + } + Assert (cell_to_normals_map.size() >= 1, ExcInternalError()); #ifdef DEBUG_NO_NORMAL_FLUX - std::cout << " cell_to_normals_map:" << std::endl; - for (typename CellToNormalsMap::const_iterator - x = cell_to_normals_map.begin(); - x != cell_to_normals_map.end(); ++x) - std::cout << " " << x->first << " -> (" - << x->second.first << ',' << x->second.second << ')' - << std::endl; + std::cout << " cell_to_normals_map:" << std::endl; + for (typename CellToNormalsMap::const_iterator + x = cell_to_normals_map.begin(); + x != cell_to_normals_map.end(); ++x) + std::cout << " " << x->first << " -> (" + << x->second.first << ',' << x->second.second << ')' + << std::endl; #endif - // count the maximum number of contributions from each cell - unsigned int max_n_contributions_per_cell = 1; - for (typename CellToNormalsMap::const_iterator - x = cell_to_normals_map.begin(); - x != cell_to_normals_map.end(); ++x) + // count the maximum number of contributions from each cell + unsigned int max_n_contributions_per_cell = 1; + for (typename CellToNormalsMap::const_iterator + x = cell_to_normals_map.begin(); + x != cell_to_normals_map.end(); ++x) max_n_contributions_per_cell = std::max (max_n_contributions_per_cell, x->second.second); - // verify that each cell can have only contributed at most dim times, - // since that is the maximum number of faces that come together at a - // single place - Assert (max_n_contributions_per_cell <= dim, ExcInternalError()); - - switch (max_n_contributions_per_cell) - { - // first deal with the case that a number of cells all have - // registered that they have a normal vector defined at the - // location of a given vector dof, and that each of them have - // encountered this vector dof exactly once while looping over all - // their faces. as stated in the documentation, this is the case - // where we want to simply average over all normal vectors - // - // the typical case is in 2d where multiple cells meet at one - // vertex sitting on the boundary. same in 3d for a vertex that - // is associated with only one of the boundary indicators passed - // to this function - case 1: - { - - // compute the average normal vector from all the ones that have - // the same set of dofs. we could add them up and divide them by - // the number of additions, or simply normalize them right away - // since we want them to have unit length anyway - Tensor<1,dim> normal; - for (typename CellToNormalsMap::const_iterator - x = cell_to_normals_map.begin(); - x != cell_to_normals_map.end(); ++x) - normal += x->second.first; - normal /= normal.norm(); - - // normalize again - for (unsigned int d=0; d & - dof_indices = same_dof_range[0]->first; - internal::add_constraint (dof_indices, normal, - constraints); + // verify that each cell can have only contributed at most dim times, + // since that is the maximum number of faces that come together at a + // single place + Assert (max_n_contributions_per_cell <= dim, ExcInternalError()); - break; - } + switch (max_n_contributions_per_cell) + { + // first deal with the case that a number of cells all have + // registered that they have a normal vector defined at the + // location of a given vector dof, and that each of them have + // encountered this vector dof exactly once while looping over all + // their faces. as stated in the documentation, this is the case + // where we want to simply average over all normal vectors + // + // the typical case is in 2d where multiple cells meet at one + // vertex sitting on the boundary. same in 3d for a vertex that + // is associated with only one of the boundary indicators passed + // to this function + case 1: + { + // compute the average normal vector from all the ones that have + // the same set of dofs. we could add them up and divide them by + // the number of additions, or simply normalize them right away + // since we want them to have unit length anyway + Tensor<1,dim> normal; + for (typename CellToNormalsMap::const_iterator + x = cell_to_normals_map.begin(); + x != cell_to_normals_map.end(); ++x) + normal += x->second.first; + normal /= normal.norm(); + + // normalize again + for (unsigned int d=0; d & + dof_indices = same_dof_range[0]->first; + double normal_value = 0.; + const Vector b_values = dof_vector_to_b_values[dof_indices]; + for (unsigned int i=0; i t; + + typename DoFToNormalsMap::const_iterator x = same_dof_range[0]; + for (unsigned int i=0; isecond.first[j]; + + Assert (std::fabs(determinant (t)) > 1e-3, + ExcMessage("Found a set of normal vectors that are nearly collinear.")); + } - // check linear independence by computing the determinant of the - // matrix created from all the normal vectors. if they are - // linearly independent, then the determinant is nonzero. if they - // are orthogonal, then the matrix is in fact equal to 1 (since - // they are all unit vectors); make sure the determinant is larger - // than 1e-3 to avoid cases where cells are degenerate + // so all components of this vector dof are constrained. enter + // this into the constraint matrix + // + // ignore dofs already constrained + const internal::VectorDoFTuple & + dof_indices = same_dof_range[0]->first; + const Vector b_values = dof_vector_to_b_values[dof_indices]; + for (unsigned int i=0; ifirst.dof_indices[i]) + && + constraints.can_store_line(same_dof_range[0]->first.dof_indices[i])) { - Tensor<2,dim> t; - - typename DoFToNormalsMap::const_iterator x = same_dof_range[0]; - for (unsigned int i=0; isecond.first[j]; - - Assert (std::fabs(determinant (t)) > 1e-3, - ExcMessage("Found a set of normal vectors that are nearly collinear.")); + const types::global_dof_index line + = dof_indices.dof_indices[i]; + constraints.add_line (line); + if (std::fabs(b_values[i]) + > std::numeric_limits::epsilon()) + constraints.set_inhomogeneity(line, b_values[i]); + // no add_entries here } - // so all components of this vector dof are constrained. enter - // this into the constraint matrix - // - // ignore dofs already constrained - for (unsigned int i=0; ifirst.dof_indices[i]) - && - constraints.can_store_line( - same_dof_range[0]->first.dof_indices[i])) - { - constraints.add_line (same_dof_range[0]->first.dof_indices[i]); - // no add_entries here - } - break; } - - // this is the case of an edge contribution in 3d, i.e. the vector - // is constrained in two directions but not the third. - default: - { - Assert (dim >= 3, ExcNotImplemented()); - Assert (max_n_contributions_per_cell == 2, ExcInternalError()); - - // as described in the documentation, let us first collect what - // each of the cells contributed at the current point. we use a - // std::list instead of a std::set (which would be more natural) - // because std::set requires that the stored elements are - // comparable with operator< - typedef - std::map::active_cell_iterator, std::list > > + // this is the case of an edge contribution in 3d, i.e. the vector + // is constrained in two directions but not the third. + default: + { + Assert (dim >= 3, ExcNotImplemented()); + Assert (max_n_contributions_per_cell == 2, ExcInternalError()); + + // as described in the documentation, let us first collect what + // each of the cells contributed at the current point. we use a + // std::list instead of a std::set (which would be more natural) + // because std::set requires that the stored elements are + // comparable with operator< + typedef std::map::active_cell_iterator, + std::list > > CellContributions; - CellContributions cell_contributions; - - for (typename DoFToNormalsMap::const_iterator - q = same_dof_range[0]; - q != same_dof_range[1]; ++q) - cell_contributions[q->second.second].push_back (q->second.first); - Assert (cell_contributions.size() >= 1, ExcInternalError()); - - // now for each cell that has contributed determine the number of - // normal vectors it has contributed. we currently only implement - // if this is dim-1 for all cells (if a single cell has - // contributed dim, or if all adjacent cells have contributed 1 - // normal vector, this is already handled above). - // - // we only implement the case that all cells contribute - // dim-1 because we assume that we are following an edge - // of the domain (think: we are looking at a vertex - // located on one of the edges of a refined cube where the - // boundary indicators of the two adjacent faces of the - // cube are both listed in the set of boundary indicators - // passed to this function). in that case, all cells along - // that edge of the domain are assumed to have contributed - // dim-1 normal vectors. however, there are cases where - // this assumption is not justified (see the lengthy - // explanation in test no_flux_12.cc) and in those cases - // we simply ignore the cell that contributes only - // once. this is also discussed at length in the - // documentation of this function. - // - // for each contributing cell compute the tangential vector that - // remains unconstrained - std::list > tangential_vectors; - for (typename CellContributions::const_iterator - contribution = cell_contributions.begin(); - contribution != cell_contributions.end(); - ++contribution) - { + CellContributions cell_contributions; + + for (typename DoFToNormalsMap::const_iterator + q = same_dof_range[0]; + q != same_dof_range[1]; ++q) + cell_contributions[q->second.second].push_back (q->second.first); + Assert (cell_contributions.size() >= 1, ExcInternalError()); + + // now for each cell that has contributed determine the number of + // normal vectors it has contributed. we currently only implement + // if this is dim-1 for all cells (if a single cell has + // contributed dim, or if all adjacent cells have contributed 1 + // normal vector, this is already handled above). + // + // we only implement the case that all cells contribute + // dim-1 because we assume that we are following an edge + // of the domain (think: we are looking at a vertex + // located on one of the edges of a refined cube where the + // boundary indicators of the two adjacent faces of the + // cube are both listed in the set of boundary indicators + // passed to this function). in that case, all cells along + // that edge of the domain are assumed to have contributed + // dim-1 normal vectors. however, there are cases where + // this assumption is not justified (see the lengthy + // explanation in test no_flux_12.cc) and in those cases + // we simply ignore the cell that contributes only + // once. this is also discussed at length in the + // documentation of this function. + // + // for each contributing cell compute the tangential vector that + // remains unconstrained + std::list > tangential_vectors; + for (typename CellContributions::const_iterator + contribution = cell_contributions.begin(); + contribution != cell_contributions.end(); + ++contribution) + { #ifdef DEBUG_NO_NORMAL_FLUX - std::cout << " Treating edge case with dim-1 contributions." << std::endl - << " Looking at cell " << contribution->first - << " which has contributed these normal vectors:" - << std::endl; - for (typename std::list >::const_iterator - t = contribution->second.begin(); - t != contribution->second.end(); - ++t) - std::cout << " " << *t << std::endl; + std::cout << " Treating edge case with dim-1 contributions." << std::endl + << " Looking at cell " << contribution->first + << " which has contributed these normal vectors:" + << std::endl; + for (typename std::list >::const_iterator + t = contribution->second.begin(); + t != contribution->second.end(); + ++t) + std::cout << " " << *t << std::endl; #endif - // as mentioned above, simply ignore cells that only - // contribute once - if (contribution->second.size() < dim-1) - continue; - - Tensor<1,dim> normals[dim-1]; - { - unsigned int index=0; - for (typename std::list >::const_iterator - t = contribution->second.begin(); - t != contribution->second.end(); - ++t, ++index) - normals[index] = *t; - Assert (index == dim-1, ExcInternalError()); - } - - // calculate the tangent as the outer product of the normal - // vectors. since these vectors do not need to be orthogonal - // (think, for example, the case of the deal.II/no_flux_07 - // test: a sheared cube in 3d, with Q2 elements, where we have - // constraints from the two normal vectors of two faces of the - // sheared cube that are not perpendicular to each other), we - // have to normalize the outer product - Tensor<1,dim> tangent; - switch (dim) - { - case 3: - // take cross product between normals[0] and - // normals[1]. write it in the current form (with [dim-2]) - // to make sure that compilers don't warn about - // out-of-bounds accesses -- the warnings are bogus since - // we get here only for dim==3, but at least one isn't - // quite smart enough to notice this and warns when - // compiling the function in 2d - cross_product (tangent, normals[0], normals[dim-2]); - break; - default: - Assert (false, ExcNotImplemented()); - } - - Assert (std::fabs (tangent.norm()) > 1e-12, - ExcMessage("Two normal vectors from adjacent faces are almost " - "parallel.")); - tangent /= tangent.norm(); - - tangential_vectors.push_back (tangent); - } + // as mentioned above, simply ignore cells that only + // contribute once + if (contribution->second.size() < dim-1) + continue; + + Tensor<1,dim> normals[dim-1]; + { + unsigned int index=0; + for (typename std::list >::const_iterator + t = contribution->second.begin(); + t != contribution->second.end(); + ++t, ++index) + normals[index] = *t; + Assert (index == dim-1, ExcInternalError()); + } - // go through the list of tangents and make sure that they all - // roughly point in the same direction as the first one (i.e. have - // an angle less than 90 degrees); if they don't then flip their - // sign + // calculate the tangent as the outer product of the normal + // vectors. since these vectors do not need to be orthogonal + // (think, for example, the case of the deal.II/no_flux_07 + // test: a sheared cube in 3d, with Q2 elements, where we have + // constraints from the two normal vectors of two faces of the + // sheared cube that are not perpendicular to each other), we + // have to normalize the outer product + Tensor<1,dim> tangent; + switch (dim) { - const Tensor<1,dim> first_tangent = tangential_vectors.front(); - typename std::list >::iterator - t = tangential_vectors.begin(); - ++t; - for (; t != tangential_vectors.end(); ++t) - if (*t * first_tangent < 0) - *t *= -1; + case 3: + // take cross product between normals[0] and + // normals[1]. write it in the current form (with [dim-2]) + // to make sure that compilers don't warn about + // out-of-bounds accesses -- the warnings are bogus since + // we get here only for dim==3, but at least one isn't + // quite smart enough to notice this and warns when + // compiling the function in 2d + cross_product (tangent, normals[0], normals[dim-2]); + break; + default: + Assert (false, ExcNotImplemented()); } - // now compute the average tangent and normalize it - Tensor<1,dim> average_tangent; - for (typename std::list >::const_iterator - t = tangential_vectors.begin(); - t != tangential_vectors.end(); - ++t) - average_tangent += *t; - average_tangent /= average_tangent.norm(); + Assert (std::fabs (tangent.norm()) > 1e-12, + ExcMessage("Two normal vectors from adjacent faces are almost " + "parallel.")); + tangent /= tangent.norm(); - // now all that is left is that we add the constraints that the - // vector is parallel to the tangent - const internal::VectorDoFTuple & - dof_indices = same_dof_range[0]->first; - internal::add_tangentiality_constraints (dof_indices, - average_tangent, - constraints); + tangential_vectors.push_back (tangent); } + + // go through the list of tangents and make sure that they all + // roughly point in the same direction as the first one (i.e. have + // an angle less than 90 degrees); if they don't then flip their + // sign + { + const Tensor<1,dim> first_tangent = tangential_vectors.front(); + typename std::list >::iterator + t = tangential_vectors.begin(); + ++t; + for (; t != tangential_vectors.end(); ++t) + if (*t * first_tangent < 0) + *t *= -1; } + + // now compute the average tangent and normalize it + Tensor<1,dim> average_tangent; + for (typename std::list >::const_iterator + t = tangential_vectors.begin(); + t != tangential_vectors.end(); + ++t) + average_tangent += *t; + average_tangent /= average_tangent.norm(); + + // now all that is left is that we add the constraints that the + // vector is parallel to the tangent + const internal::VectorDoFTuple & + dof_indices = same_dof_range[0]->first; + const Vector b_values = dof_vector_to_b_values[dof_indices]; + internal::add_tangentiality_constraints (dof_indices, + average_tangent, + constraints, + b_values); + } } + } } @@ -4812,13 +4888,64 @@ namespace VectorTools const std::set &boundary_ids, ConstraintMatrix &constraints, const Mapping &mapping) + { + ZeroFunctionzero_function(dim); + typename FunctionMap::type function_map; + std::set::const_iterator it + = boundary_ids.begin(); + for (;it != boundary_ids.end(); ++it) + function_map[*it] = &zero_function; + compute_nonzero_tangential_flux_constraints(dof_handler, + first_vector_component, + boundary_ids, + function_map, + constraints, + mapping); + } + + template class DH, int spacedim> + void + compute_nonzero_tangential_flux_constraints (const DH &dof_handler, + const unsigned int first_vector_component, + const std::set &boundary_ids, + typename FunctionMap::type &function_map, + ConstraintMatrix &constraints, + const Mapping &mapping) { ConstraintMatrix no_normal_flux_constraints(constraints.get_local_lines()); - compute_no_normal_flux_constraints (dof_handler, - first_vector_component, - boundary_ids, - no_normal_flux_constraints, - mapping); + compute_nonzero_normal_flux_constraints (dof_handler, + first_vector_component, + boundary_ids, + function_map, + no_normal_flux_constraints, + mapping); + + hp::FECollection fe_collection (dof_handler.get_fe()); + hp::MappingCollection mapping_collection; + for (unsigned int i=0; i face_quadrature_collection; + for (unsigned int i=0; i > & + unit_support_points = fe_collection[i].get_unit_face_support_points(); + + Assert (unit_support_points.size() == fe_collection[i].dofs_per_face, + ExcInternalError()); + + face_quadrature_collection.push_back (Quadrature (unit_support_points)); + } + + // now create the object with which we will generate the normal vectors + hp::FEFaceValues x_fe_face_values (mapping_collection, + fe_collection, + face_quadrature_collection, + update_q_points | + update_normal_vectors); // Extract a list that collects all vector components that belong to the // same node (scalar basis function). When creating that list, we use an @@ -4826,13 +4953,17 @@ namespace VectorTools std::set, PointComparator > vector_dofs; std::vector face_dofs; + std::map, Vector > + dof_vector_to_b_values; + + std::set::iterator b_id; std::vector > cell_vector_dofs; for (typename DH::active_cell_iterator cell = dof_handler.begin_active(); cell != dof_handler.end(); ++cell) if (!cell->is_artificial()) for (unsigned int face_no=0; face_no < GeometryInfo::faces_per_cell; ++face_no) - if (boundary_ids.find(cell->face(face_no)->boundary_indicator()) + if ((b_id=boundary_ids.find(cell->face(face_no)->boundary_indicator())) != boundary_ids.end()) { const FiniteElement &fe = cell->get_fe(); @@ -4842,25 +4973,50 @@ namespace VectorTools face_dofs.resize (fe.dofs_per_face); face->get_dof_indices (face_dofs, cell->active_fe_index()); + x_fe_face_values.reinit (cell, face_no); + const FEFaceValues &fe_values = x_fe_face_values.get_present_fe_values(); + + std::map dof_to_b_value; + unsigned int n_scalar_indices = 0; cell_vector_dofs.resize(fe.dofs_per_face); for (unsigned int i=0; i= first_vector_component && fe.face_system_to_component_index(i).first < first_vector_component + dim) - { - n_scalar_indices = - std::max(n_scalar_indices, - fe.face_system_to_component_index(i).second+1); - cell_vector_dofs[fe.face_system_to_component_index(i).second] - [fe.face_system_to_component_index(i).first-first_vector_component] - = face_dofs[i]; - } + { + const unsigned int component + = fe.face_system_to_component_index(i).first + -first_vector_component; + n_scalar_indices = + std::max(n_scalar_indices, + fe.face_system_to_component_index(i).second+1); + cell_vector_dofs[fe.face_system_to_component_index(i).second] + [component] + = face_dofs[i]; + + const Point point + = fe_values.quadrature_point(i); + const double b_value + = function_map[*b_id]->value(point, component); + dof_to_b_value.insert + (std::make_pair(face_dofs[i], b_value)); + } + } // now we identified the vector indices on the cell, so next // insert them into the set (it would be expensive to directly // insert incomplete points into the set) for (unsigned int i=0; i b_values(dim); + for (unsigned int j=0; j 1) { + const Vector b_value = dof_vector_to_b_values[*it]; for (unsigned int d=0; d boundary_value = dof_vector_to_b_values[*it]; for (unsigned int d=0; d 1e-13) constraints.add_entry(new_index, (*it)[constrained_index], -normal[d]); + constraints.set_inhomogeneity(new_index, boundary_value[d]); } } } diff --git a/deal.II/source/distributed/tria.cc b/deal.II/source/distributed/tria.cc index 4085903ce0..6a22f877f5 100644 --- a/deal.II/source/distributed/tria.cc +++ b/deal.II/source/distributed/tria.cc @@ -3530,104 +3530,52 @@ namespace parallel } } - template <> - void - Triangulation<1,1>:: - fill_vertices_with_ghost_neighbors - (std::map > - &vertices_with_ghost_neighbors) - { - Assert (false, ExcNotImplemented()); - } - - template <> - void - Triangulation<1,2>:: - fill_vertices_with_ghost_neighbors - (std::map > - &vertices_with_ghost_neighbors) - { - Assert (false, ExcNotImplemented()); - } - - template <> - void - Triangulation<1,3>:: - fill_vertices_with_ghost_neighbors - (std::map > - &vertices_with_ghost_neighbors) - { - Assert (false, ExcNotImplemented()); - } /** * Determine the neighboring subdomains that are adjacent to each vertex. - * This is achieved via the p4est_iterate tool + * This is achieved via the p4est_iterate/p8est_iterate tool */ - template <> + template void - Triangulation<2,2>:: + Triangulation:: fill_vertices_with_ghost_neighbors (std::map > &vertices_with_ghost_neighbors) { - struct find_ghosts<2,2> fg; - - fg.subids = sc_array_new (sizeof (dealii::types::subdomain_id)); - fg.triangulation = this; - fg.vertices_with_ghost_neighbors = &(vertices_with_ghost_neighbors); - - p4est_iterate (this->parallel_forest, this->parallel_ghost, static_cast(&fg), - NULL, find_ghosts_face<2,2>, find_ghosts_corner<2,2>); - - sc_array_destroy (fg.subids); - } + Assert (dim>1, ExcNotImplemented()); - /** - * Determine the neighboring subdomains that are adjacent to each vertex. - * This is achieved via the p4est_iterate tool - */ - template <> - void - Triangulation<2,3>:: - fill_vertices_with_ghost_neighbors - (std::map > - &vertices_with_ghost_neighbors) - { - struct find_ghosts<2,3> fg; + struct find_ghosts fg; fg.subids = sc_array_new (sizeof (dealii::types::subdomain_id)); fg.triangulation = this; - fg.vertices_with_ghost_neighbors = &(vertices_with_ghost_neighbors); + fg.vertices_with_ghost_neighbors = &vertices_with_ghost_neighbors; - p4est_iterate (this->parallel_forest, this->parallel_ghost, static_cast(&fg), - NULL, find_ghosts_face<2,3>, find_ghosts_corner<2,3>); + // switch between functions. to make the compiler happy, we need to cast + // the first two arguments to the type p[48]est_iterate wants to see. this + // cast is the identity cast in each of the two branches, so it is safe. + switch (dim) + { + case 2: + p4est_iterate (reinterpret_cast::forest*>(this->parallel_forest), + reinterpret_cast::ghost*>(this->parallel_ghost), + static_cast(&fg), + NULL, find_ghosts_face<2,spacedim>, find_ghosts_corner<2,spacedim>); + break; + + case 3: + p8est_iterate (reinterpret_cast::forest*>(this->parallel_forest), + reinterpret_cast::ghost*>(this->parallel_ghost), + static_cast(&fg), + NULL, find_ghosts_face<3,spacedim>, find_ghosts_edge<3,spacedim>, find_ghosts_corner<3,spacedim>); + break; + + default: + Assert (false, ExcNotImplemented()); + } sc_array_destroy (fg.subids); } - /** - * Determine the neighboring subdomains that are adjacent to each vertex. - * This is achieved via the p8est_iterate tool - */ - template <> - void - Triangulation<3,3>:: - fill_vertices_with_ghost_neighbors - (std::map > - &vertices_with_ghost_neighbors) - { - struct find_ghosts<3,3> fg; - - fg.subids = sc_array_new (sizeof (dealii::types::subdomain_id)); - fg.triangulation = this; - fg.vertices_with_ghost_neighbors = &(vertices_with_ghost_neighbors); - - p8est_iterate (this->parallel_forest, this->parallel_ghost, static_cast(&fg), - NULL, find_ghosts_face<3,3>, find_ghosts_edge<3,3>, find_ghosts_corner<3,3>); - - sc_array_destroy (fg.subids); - } template MPI_Comm @@ -3636,6 +3584,7 @@ namespace parallel return mpi_communicator; } + template void Triangulation::add_periodicity @@ -3909,162 +3858,71 @@ namespace parallel - // TODO: again problems with specialization in only one template argument - template <> - Triangulation<1,1>::Triangulation (MPI_Comm) + template + Triangulation<1,spacedim>::Triangulation (MPI_Comm) { Assert (false, ExcNotImplemented()); } - template <> - Triangulation<1,1>::~Triangulation () + template + Triangulation<1,spacedim>::~Triangulation () { Assert (false, ExcNotImplemented()); } - template <> + template types::subdomain_id - Triangulation<1,1>::locally_owned_subdomain () const + Triangulation<1,spacedim>::locally_owned_subdomain () const { Assert (false, ExcNotImplemented()); return 0; } - template <> + template types::global_dof_index - Triangulation<1,1>::n_global_active_cells () const + Triangulation<1,spacedim>::n_global_active_cells () const { Assert (false, ExcNotImplemented()); return 0; } - template <> + template unsigned int - Triangulation<1,1>::n_global_levels () const + Triangulation<1,spacedim>::n_global_levels () const { Assert (false, ExcNotImplemented()); return 0; } - template <> + template MPI_Comm - Triangulation<1,1>::get_communicator () const + Triangulation<1,spacedim>::get_communicator () const { return MPI_COMM_WORLD; } - template <> + template const std::vector & - Triangulation<1,1>::get_p4est_tree_to_coarse_cell_permutation() const + Triangulation<1,spacedim>::get_p4est_tree_to_coarse_cell_permutation() const { static std::vector a; return a; } - - template <> - Triangulation<1,2>::Triangulation (MPI_Comm) - { - Assert (false, ExcNotImplemented()); - } - - - template <> - Triangulation<1,2>::~Triangulation () - { - Assert (false, ExcNotImplemented()); - } - - - - template <> - types::subdomain_id - Triangulation<1,2>::locally_owned_subdomain () const - { - Assert (false, ExcNotImplemented()); - return 0; - } - - - template <> - types::global_dof_index - Triangulation<1,2>::n_global_active_cells () const - { - Assert (false, ExcNotImplemented()); - return 0; - } - - - template <> - unsigned int - Triangulation<1,2>::n_global_levels () const - { - Assert (false, ExcNotImplemented()); - return 0; - } - - - template <> - MPI_Comm - Triangulation<1,2>::get_communicator () const - { - return MPI_COMM_WORLD; - } - - - template <> - Triangulation<1,3>::Triangulation (MPI_Comm) - { - Assert (false, ExcNotImplemented()); - } - - - template <> - Triangulation<1,3>::~Triangulation () - { - Assert (false, ExcNotImplemented()); - } - - - - template <> - types::subdomain_id - Triangulation<1,3>::locally_owned_subdomain () const - { - Assert (false, ExcNotImplemented()); - return 0; - } - - - template <> - types::global_dof_index - Triangulation<1,3>::n_global_active_cells () const - { - Assert (false, ExcNotImplemented()); - return 0; - } - - - template <> - unsigned int - Triangulation<1,3>::n_global_levels () const + template + void + Triangulation<1,spacedim>:: + fill_vertices_with_ghost_neighbors + (std::map > + &vertices_with_ghost_neighbors) { Assert (false, ExcNotImplemented()); - return 0; - } - - - template <> - MPI_Comm - Triangulation<1,3>::get_communicator () const - { - return MPI_COMM_WORLD; } } } diff --git a/deal.II/source/dofs/dof_tools.cc b/deal.II/source/dofs/dof_tools.cc index 3ea5499334..1ca207eb0d 100644 --- a/deal.II/source/dofs/dof_tools.cc +++ b/deal.II/source/dofs/dof_tools.cc @@ -984,12 +984,6 @@ namespace DoFTools Assert (component_mask.represents_n_components(n_components), ExcDimensionMismatch(n_components, component_mask.size())); - std::vector localized_component (n_components, - numbers::invalid_unsigned_int); - unsigned int n_components_selected = 0; - for (unsigned int i=0; i dofs_by_component (dof_handler.n_locally_owned_dofs()); internal::get_component_association (dof_handler, component_mask, @@ -1008,17 +1002,37 @@ namespace DoFTools if (component_mask[dofs_by_component[i]]) component_numbering[i] = count++; - // First count the number of dofs in the current component. - constant_modes.clear (); - constant_modes.resize (n_components_selected, std::vector(n_selected_dofs, - false)); - - // Loop over all owned cells and ask the element for the constant modes + // get the element constant modes and find a translation table between + // index in the constant modes and the components. + // + // TODO: We might be able to extend this also for elements which do not + // have the same constant modes, but that is messy... const dealii::hp::FECollection fe_collection (dof_handler.get_fe()); std::vector > element_constant_modes; + std::vector > > + constant_mode_to_component_translation(n_components); + unsigned int n_constant_modes = 0; for (unsigned int f=0; f, std::vector > data + = fe_collection[f].get_constant_modes(); + element_constant_modes.push_back(data.first); + if (f==0) + for (unsigned int i=0; i(n_selected_dofs, + false)); + + // Loop over all owned cells and ask the element for the constant modes typename DH::active_cell_iterator cell = dof_handler.begin_active(), endc = dof_handler.end(); @@ -1036,8 +1050,11 @@ namespace DoFTools locally_owned_dofs.index_within_set(dof_indices[i]); const unsigned int comp = dofs_by_component[loc_index]; if (component_mask[comp]) - constant_modes[localized_component[comp]][component_numbering[loc_index]] = - element_constant_modes[cell->active_fe_index()](comp,i); + for (unsigned int j=0; jactive_fe_index()] + (constant_mode_to_component_translation[comp][j].second,i); } } } diff --git a/deal.II/source/fe/fe.cc b/deal.II/source/fe/fe.cc index 8237022f8a..7e9d79bf4d 100644 --- a/deal.II/source/fe/fe.cc +++ b/deal.II/source/fe/fe.cc @@ -1104,11 +1104,13 @@ FiniteElement::has_support_on_face ( template -Table<2,bool> +std::pair, std::vector > FiniteElement::get_constant_modes () const { Assert (false, ExcNotImplemented()); - return Table<2,bool>(this->n_components(), this->dofs_per_cell); + return std::pair, std::vector > + (Table<2,bool>(this->n_components(), this->dofs_per_cell), + std::vector(this->n_components())); } diff --git a/deal.II/source/fe/fe_bdm.cc b/deal.II/source/fe/fe_bdm.cc index 5f53049c90..105b50e41c 100644 --- a/deal.II/source/fe/fe_bdm.cc +++ b/deal.II/source/fe/fe_bdm.cc @@ -51,7 +51,7 @@ FE_BDM::FE_BDM (const unsigned int deg) const unsigned int n_dofs = this->dofs_per_cell; - this->mapping_type = mapping_piola; + this->mapping_type = mapping_bdm; // These must be done first, since // they change the evaluation of // basis functions diff --git a/deal.II/source/fe/fe_dgp.cc b/deal.II/source/fe/fe_dgp.cc index ca52e4f149..daa2b51d3a 100644 --- a/deal.II/source/fe/fe_dgp.cc +++ b/deal.II/source/fe/fe_dgp.cc @@ -238,12 +238,13 @@ FE_DGP::has_support_on_face (const unsigned int, template -Table<2,bool> +std::pair, std::vector > FE_DGP::get_constant_modes () const { Table<2,bool> constant_modes(1, this->dofs_per_cell); constant_modes(0,0) = true; - return constant_modes; + return std::pair, std::vector > + (constant_modes, std::vector(1, 0)); } diff --git a/deal.II/source/fe/fe_dgq.cc b/deal.II/source/fe/fe_dgq.cc index fd63197417..8fe34b6c60 100644 --- a/deal.II/source/fe/fe_dgq.cc +++ b/deal.II/source/fe/fe_dgq.cc @@ -343,9 +343,7 @@ get_interpolation_matrix (const FiniteElement &x_source_fe, // source FE is also a // DGQ element typedef FiniteElement FE; - AssertThrow ((x_source_fe.get_name().find ("FE_DGQ<") == 0) - || - (dynamic_cast*>(&x_source_fe) != 0), + AssertThrow ((dynamic_cast*>(&x_source_fe) != 0), typename FE::ExcInterpolationNotImplemented() ); // ok, source is a Q element, so @@ -432,9 +430,7 @@ get_face_interpolation_matrix (const FiniteElement &x_source_fe, // is necessarily empty -- i.e. there isn't // much we need to do here. typedef FiniteElement FE; - AssertThrow ((x_source_fe.get_name().find ("FE_DGQ<") == 0) - || - (dynamic_cast*>(&x_source_fe) != 0), + AssertThrow ((dynamic_cast*>(&x_source_fe) != 0), typename FE::ExcInterpolationNotImplemented()); Assert (interpolation_matrix.m() == 0, @@ -461,9 +457,7 @@ get_subface_interpolation_matrix (const FiniteElement &x_source_f // is necessarily empty -- i.e. there isn't // much we need to do here. typedef FiniteElement FE; - AssertThrow ((x_source_fe.get_name().find ("FE_DGQ<") == 0) - || - (dynamic_cast*>(&x_source_fe) != 0), + AssertThrow ((dynamic_cast*>(&x_source_fe) != 0), typename FE::ExcInterpolationNotImplemented()); Assert (interpolation_matrix.m() == 0, @@ -771,13 +765,13 @@ FE_DGQ::has_support_on_face (const unsigned int shape_index, template -Table<2,bool> +std::pair, std::vector > FE_DGQ::get_constant_modes () const { Table<2,bool> constant_modes(1, this->dofs_per_cell); - for (unsigned int i=0; idofs_per_cell; ++i) - constant_modes(0,i) = true; - return constant_modes; + constant_modes.fill(true); + return std::pair, std::vector > + (constant_modes, std::vector(1, 0)); } @@ -804,59 +798,39 @@ template std::string FE_DGQArbitraryNodes::get_name () const { - // note that the - // FETools::get_fe_from_name - // function does not work for - // FE_DGQArbitraryNodes since - // there is no initialization by - // a degree value. + // note that the FETools::get_fe_from_name function does not work for + // FE_DGQArbitraryNodes since there is no initialization by a degree value. std::ostringstream namebuf; + bool equidistant = true; + std::vector points(this->degree+1); - bool type = true; - const unsigned int n_points = this->degree +1; - std::vector points(n_points); - const unsigned int dofs_per_cell = this->dofs_per_cell; - const std::vector > &unit_support_points = this->unit_support_points; - unsigned int index = 0; + std::vector lexicographic = this->poly_space.get_numbering_inverse(); + for (unsigned int j=0; j<=this->degree; j++) + points[j] = this->unit_support_points[lexicographic[j]][0]; - // Decode the support points - // in one coordinate direction. - for (unsigned int j=0; j1) ? (unit_support_points[j](1)==0 && - ((dim>2) ? unit_support_points[j](2)==0: true)) : true) - { - points[index++] = unit_support_points[j](0); - } - } - Assert (index == n_points, - ExcMessage ("Could not decode support points in one coordinate direction.")); - - // Check whether the support - // points are equidistant. - for (unsigned int j=0; jdegree; j++) if (std::fabs(points[j] - (double)j/this->degree) > 1e-15) { - type = false; + equidistant = false; break; } - if (type == true) + if (equidistant == true) namebuf << "FE_DGQ<" << dim << ">(" << this->degree << ")"; else { - // Check whether the support - // points come from QGaussLobatto. - const QGaussLobatto<1> points_gl(n_points); - type = true; - for (unsigned int j=0; j points_gl(this->degree+1); + bool gauss_lobatto = true; + for (unsigned int j=0; j<=this->degree; j++) if (points[j] != points_gl.point(j)(0)) { - type = false; + gauss_lobatto = false; break; } - if (type == true) + if (gauss_lobatto == true) namebuf << "FE_DGQArbitraryNodes<" << dim << ">(QGaussLobatto(" << this->degree+1 << "))"; else namebuf << "FE_DGQArbitraryNodes<" << dim << ">(QUnknownNodes(" << this->degree << "))"; @@ -871,15 +845,11 @@ template FiniteElement * FE_DGQArbitraryNodes::clone() const { - // TODO[Prill] : There must be a better way - // to extract 1D quadrature points from the - // tensor product FE. - - // Construct a dummy quadrature formula - // containing the FE's nodes: + // Construct a dummy quadrature formula containing the FE's nodes: std::vector > qpoints(this->degree+1); + std::vector lexicographic = this->poly_space.get_numbering_inverse(); for (unsigned int i=0; i<=this->degree; ++i) - qpoints[i] = Point<1>(this->unit_support_points[i][0]); + qpoints[i] = Point<1>(this->unit_support_points[lexicographic[i]][0]); Quadrature<1> pquadrature(qpoints); return new FE_DGQArbitraryNodes(pquadrature); diff --git a/deal.II/source/fe/fe_face.cc b/deal.II/source/fe/fe_face.cc index 9d62ff19d5..3a210bd849 100644 --- a/deal.II/source/fe/fe_face.cc +++ b/deal.II/source/fe/fe_face.cc @@ -289,13 +289,14 @@ compare_for_face_domination (const FiniteElement &fe_other) const template -Table<2,bool> +std::pair, std::vector > FE_FaceQ::get_constant_modes () const { Table<2,bool> constant_modes(1, this->dofs_per_cell); for (unsigned int i=0; idofs_per_cell; ++i) constant_modes(0,i) = true; - return constant_modes; + return std::pair, std::vector > + (constant_modes, std::vector(1, 0)); } @@ -416,13 +417,14 @@ compare_for_face_domination (const FiniteElement<1,spacedim> &fe_other) const template -Table<2,bool> +std::pair, std::vector > FE_FaceQ<1,spacedim>::get_constant_modes () const { Table<2,bool> constant_modes(1, this->dofs_per_cell); for (unsigned int i=0; idofs_per_cell; ++i) constant_modes(0,i) = true; - return constant_modes; + return std::pair, std::vector > + (constant_modes, std::vector(1,0)); } @@ -780,13 +782,14 @@ get_subface_interpolation_matrix (const FiniteElement &x_source_fe template -Table<2,bool> +std::pair, std::vector > FE_FaceP::get_constant_modes () const { Table<2,bool> constant_modes(1, this->dofs_per_cell); for (unsigned int face=0; face::faces_per_cell; ++face) constant_modes(0, face*this->dofs_per_face) = true; - return constant_modes; + return std::pair, std::vector > + (constant_modes, std::vector(1, 0)); } diff --git a/deal.II/source/fe/fe_nedelec.cc b/deal.II/source/fe/fe_nedelec.cc index 29c15ced94..40c14953f4 100644 --- a/deal.II/source/fe/fe_nedelec.cc +++ b/deal.II/source/fe/fe_nedelec.cc @@ -5466,14 +5466,18 @@ const template -Table<2,bool> +std::pair, std::vector > FE_Nedelec::get_constant_modes() const { Table<2,bool> constant_modes(dim, this->dofs_per_cell); for (unsigned int d=0; ddofs_per_cell; ++i) constant_modes(d,i) = true; - return constant_modes; + std::vector components; + for (unsigned int d=0; d, std::vector > + (constant_modes, components); } diff --git a/deal.II/source/fe/fe_q.cc b/deal.II/source/fe/fe_q.cc index 207187093a..717d783d82 100644 --- a/deal.II/source/fe/fe_q.cc +++ b/deal.II/source/fe/fe_q.cc @@ -76,55 +76,36 @@ FE_Q::get_name () const // kept in synch std::ostringstream namebuf; - bool type = true; - const unsigned int n_points = this->degree +1; - std::vector points(n_points); - const unsigned int dofs_per_cell = this->dofs_per_cell; - const std::vector > &unit_support_points = this->unit_support_points; - unsigned int index = 0; + bool equidistant = true; + std::vector points(this->degree+1); // Decode the support points in one coordinate direction. - for (unsigned int j=0; j1) ? (unit_support_points[j](1)==0 && - ((dim>2) ? unit_support_points[j](2)==0: true)) : true) - { - if (index == 0) - points[index] = unit_support_points[j](0); - else if (index == 1) - points[n_points-1] = unit_support_points[j](0); - else - points[index-1] = unit_support_points[j](0); - - index++; - } - } - Assert (index == n_points, - ExcMessage ("Could not decode support points in one coordinate direction.")); + std::vector lexicographic = this->poly_space.get_numbering_inverse(); + for (unsigned int j=0; j<=this->degree; j++) + points[j] = this->unit_support_points[lexicographic[j]][0]; // Check whether the support points are equidistant. - for (unsigned int j=0; jdegree; j++) if (std::fabs(points[j] - (double)j/this->degree) > 1e-15) { - type = false; + equidistant = false; break; } - if (type == true) + if (equidistant == true) namebuf << "FE_Q<" << dim << ">(" << this->degree << ")"; else { - // Check whether the support points come from QGaussLobatto. - const QGaussLobatto<1> points_gl(n_points); - type = true; - for (unsigned int j=0; j points_gl(this->degree+1); + bool gauss_lobatto = true; + for (unsigned int j=0; j<=this->degree; j++) if (points[j] != points_gl.point(j)(0)) { - type = false; + gauss_lobatto = false; break; } - if (type == true) + if (gauss_lobatto == true) namebuf << "FE_Q<" << dim << ">(QGaussLobatto(" << this->degree+1 << "))"; else namebuf << "FE_Q<" << dim << ">(QUnknownNodes(" << this->degree << "))"; diff --git a/deal.II/source/fe/fe_q_base.cc b/deal.II/source/fe/fe_q_base.cc index 7212212063..0e9b94ec33 100644 --- a/deal.II/source/fe/fe_q_base.cc +++ b/deal.II/source/fe/fe_q_base.cc @@ -1495,14 +1495,15 @@ FE_Q_Base::has_support_on_face (const unsigned int shape_inde template -Table<2,bool> +std::pair, std::vector > FE_Q_Base::get_constant_modes () const { Table<2,bool> constant_modes(1, this->dofs_per_cell); - // leave out last component - for (unsigned int i=0; i(this->degree+1); ++i) - constant_modes(0, i) = true; - return constant_modes; + // FE_Q_DG0 should not use this function... + AssertDimension(this->dofs_per_cell, Utilities::fixed_power(this->degree+1)); + constant_modes.fill(true); + return std::pair, std::vector > + (constant_modes, std::vector(1, 0)); } diff --git a/deal.II/source/fe/fe_q_dg0.cc b/deal.II/source/fe/fe_q_dg0.cc index 8ecc7df865..99ba0e946b 100644 --- a/deal.II/source/fe/fe_q_dg0.cc +++ b/deal.II/source/fe/fe_q_dg0.cc @@ -307,6 +307,26 @@ FE_Q_DG0::has_support_on_face (const unsigned int shape_index, } + +template +std::pair, std::vector > +FE_Q_DG0::get_constant_modes () const +{ + Table<2,bool> constant_modes(2, this->dofs_per_cell); + + // 1 represented by FE_Q part + for (unsigned int i=0; idofs_per_cell-1; ++i) + constant_modes(0, i) = true; + + // 1 represented by DG0 part + constant_modes(1, this->dofs_per_cell-1) = true; + + return std::pair, std::vector > + (constant_modes, std::vector (2, 0)); +} + + + // explicit instantiations #include "fe_q_dg0.inst" diff --git a/deal.II/source/fe/fe_q_hierarchical.cc b/deal.II/source/fe/fe_q_hierarchical.cc index b1800b6311..8d2d5bf0c6 100644 --- a/deal.II/source/fe/fe_q_hierarchical.cc +++ b/deal.II/source/fe/fe_q_hierarchical.cc @@ -1862,7 +1862,7 @@ FE_Q_Hierarchical::get_embedding_dofs (const unsigned int sub_degree) const template -Table<2,bool> +std::pair, std::vector > FE_Q_Hierarchical::get_constant_modes () const { Table<2,bool> constant_modes(1, this->dofs_per_cell); @@ -1870,7 +1870,8 @@ FE_Q_Hierarchical::get_constant_modes () const constant_modes(0,i) = true; for (unsigned int i=GeometryInfo::vertices_per_cell; idofs_per_cell; ++i) constant_modes(0,i) = false; - return constant_modes; + return std::pair, std::vector > + (constant_modes, std::vector(1, 0)); } diff --git a/deal.II/source/fe/fe_raviart_thomas.cc b/deal.II/source/fe/fe_raviart_thomas.cc index 22208bae95..c799221bc7 100644 --- a/deal.II/source/fe/fe_raviart_thomas.cc +++ b/deal.II/source/fe/fe_raviart_thomas.cc @@ -404,14 +404,18 @@ FE_RaviartThomas::get_dpo_vector (const unsigned int deg) template -Table<2,bool> +std::pair, std::vector > FE_RaviartThomas::get_constant_modes() const { Table<2,bool> constant_modes(dim, this->dofs_per_cell); for (unsigned int d=0; ddofs_per_cell; ++i) constant_modes(d,i) = true; - return constant_modes; + std::vector components; + for (unsigned int d=0; d, std::vector > + (constant_modes, components); } diff --git a/deal.II/source/fe/fe_system.cc b/deal.II/source/fe/fe_system.cc index 24cc2213c5..78bce6132b 100644 --- a/deal.II/source/fe/fe_system.cc +++ b/deal.II/source/fe/fe_system.cc @@ -2983,28 +2983,55 @@ FESystem::unit_face_support_point (const unsigned int index) const template -Table<2,bool> +std::pair, std::vector > FESystem::get_constant_modes () const { + // Note that this->n_components() is actually only an estimate of how many + // constant modes we will need. There might be more than one such mode + // (e.g. FE_Q_DG0). Table<2,bool> constant_modes(this->n_components(), this->dofs_per_cell); - unsigned int comp=0; + std::vector components; for (unsigned int i=0; i base_table = base_elements[i].first->get_constant_modes(); - const unsigned int n_base_components = base_elements[i].first->n_components(); + std::pair, std::vector > + base_table = base_elements[i].first->get_constant_modes(); + AssertDimension(base_table.first.n_rows(), base_table.second.size()); + const unsigned int element_multiplicity = this->element_multiplicity(i); + + // there might be more than one constant mode for some scalar elements, + // so make sure the table actually fits: Create a new table with more + // rows + const unsigned int comp = components.size(); + if (constant_modes.n_rows() < comp+base_table.first.n_rows()*element_multiplicity) + { + Table<2,bool> new_constant_modes(comp+base_table.first.n_rows()* + element_multiplicity, + constant_modes.n_cols()); + for (unsigned int r=0; rdofs_per_cell; ++c) + new_constant_modes(r,c) = constant_modes(r,c); + constant_modes.swap(new_constant_modes); + } + + // next, fill the constant modes from the individual components as well + // as the component numbers corresponding to the constant mode rows for (unsigned int k=0; kdofs_per_cell; ++k) { std::pair, unsigned int> ind = this->system_to_base_index(k); if (ind.first.first == i) - for (unsigned int c=0; cbase_elements[i].first->n_components() + +base_table.second[c]); } - AssertDimension(comp, this->n_components()); - return constant_modes; + AssertDimension(components.size(), constant_modes.n_rows()); + return std::pair, std::vector >(constant_modes, + components); } diff --git a/deal.II/source/grid/grid_generator.cc b/deal.II/source/grid/grid_generator.cc index 954a06b25a..2a466932c8 100644 --- a/deal.II/source/grid/grid_generator.cc +++ b/deal.II/source/grid/grid_generator.cc @@ -3421,11 +3421,15 @@ namespace GridGenerator cells.push_back (this_cell); } - // throw out duplicated vertices from the two meshes - // and create the triangulation + // throw out duplicated vertices from the two meshes, reorder vertices as + // necessary and create the triangulation SubCellData subcell_data; std::vector considered_vertices; - GridTools::delete_duplicated_vertices (vertices, cells, subcell_data, considered_vertices); + GridTools::delete_duplicated_vertices (vertices, cells, + subcell_data, + considered_vertices); + GridReordering::reorder_cells (cells); + result.clear (); result.create_triangulation (vertices, cells, subcell_data); } @@ -3554,7 +3558,8 @@ namespace GridGenerator // Implementation for 1D only template <> void laplace_transformation (Triangulation<1> &, - const std::map > &) + const std::map > &, + const Function<1> *) { Assert(false, ExcNotImplemented()); } @@ -3563,7 +3568,8 @@ namespace GridGenerator // Implementation for dimensions except 1 template void laplace_transformation (Triangulation &tria, - const std::map > &new_points) + const std::map > &new_points, + const Function *coefficient) { // first provide everything that is // needed for solving a Laplace @@ -3587,38 +3593,39 @@ namespace GridGenerator QGauss quadrature(4); - MatrixCreator::create_laplace_matrix(mapping_q1, dof_handler, quadrature, S); + MatrixCreator::create_laplace_matrix(mapping_q1, dof_handler, quadrature, S,coefficient); // set up the boundary values for // the laplace problem std::vector > m(dim); - typename std::map >::const_iterator map_iter; typename std::map >::const_iterator map_end=new_points.end(); // fill these maps using the data // given by new_points typename DoFHandler::cell_iterator cell=dof_handler.begin_active(), - endc=dof_handler.end(); - typename DoFHandler::face_iterator face; + endc=dof_handler.end(); for (; cell!=endc; ++cell) { - if (cell->at_boundary()) - for (unsigned int face_no=0; face_no::faces_per_cell; ++face_no) - { - face=cell->face(face_no); - if (face->at_boundary()) - for (unsigned int vertex_no=0; - vertex_no::vertices_per_face; ++vertex_no) - { - const unsigned int vertex_index=face->vertex_index(vertex_no); - map_iter=new_points.find(vertex_index); + for (unsigned int face_no=0; face_no::faces_per_cell; ++face_no) + { + const typename DoFHandler::face_iterator face=cell->face(face_no); - if (map_iter!=map_end) - for (unsigned int i=0; i ( - face->vertex_dof_index(vertex_no, 0), map_iter->second(i))); - } - } + // loop over all vertices of the cell and see if it is listed in the map + // given as first argument of the function + for (unsigned int vertex_no=0; + vertex_no::vertices_per_face; ++vertex_no) + { + const unsigned int vertex_index=face->vertex_index(vertex_no); + + const typename std::map >::const_iterator map_iter + = new_points.find(vertex_index); + + if (map_iter!=map_end) + for (unsigned int i=0; i ( + face->vertex_dof_index(vertex_no, 0), map_iter->second(i))); + } + } } // solve the dim problems with diff --git a/deal.II/source/grid/grid_generator.inst.in b/deal.II/source/grid/grid_generator.inst.in index 684d5a0d62..913a91ab07 100644 --- a/deal.II/source/grid/grid_generator.inst.in +++ b/deal.II/source/grid/grid_generator.inst.in @@ -92,7 +92,8 @@ namespace GridGenerator \{ #if deal_II_dimension > 1 template void laplace_transformation (Triangulation &, - const std::map > &); + const std::map > &, + const Function *); #endif \} diff --git a/deal.II/source/grid/grid_tools.cc b/deal.II/source/grid/grid_tools.cc index 84e781be1e..34888a24bb 100644 --- a/deal.II/source/grid/grid_tools.cc +++ b/deal.II/source/grid/grid_tools.cc @@ -623,11 +623,12 @@ namespace GridTools template void laplace_transform (const std::map > &new_points, - Triangulation &triangulation) + Triangulation &triangulation, + const Function *coefficient) { //TODO: Move implementation of this function into the current // namespace - GridGenerator::laplace_transformation(triangulation, new_points); + GridGenerator::laplace_transformation(triangulation, new_points, coefficient); } diff --git a/deal.II/source/grid/grid_tools.inst.in b/deal.II/source/grid/grid_tools.inst.in index a85fc66fb5..20e2102a5c 100644 --- a/deal.II/source/grid/grid_tools.inst.in +++ b/deal.II/source/grid/grid_tools.inst.in @@ -238,7 +238,8 @@ for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS template void laplace_transform (const std::map > &new_points, - Triangulation &triangulation); + Triangulation &triangulation, + const Function *coefficient); template Triangulation::DistortedCellList diff --git a/deal.II/source/grid/tria_accessor.cc b/deal.II/source/grid/tria_accessor.cc index c0df81098c..69a5ed21a2 100644 --- a/deal.II/source/grid/tria_accessor.cc +++ b/deal.II/source/grid/tria_accessor.cc @@ -1353,16 +1353,6 @@ void CellAccessor::recursively_set_material_id (const types::mate -template -types::subdomain_id CellAccessor::subdomain_id () const -{ - Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed()); - Assert (this->active(), ExcMessage("subdomains only work on active cells!")); - return this->tria->levels[this->present_level]->subdomain_ids[this->present_index]; -} - - - template void CellAccessor::set_subdomain_id (const types::subdomain_id new_subdomain_id) const @@ -1421,6 +1411,32 @@ CellAccessor::set_direction_flag (const bool new_direction_flag) +template +void +CellAccessor::set_parent (const unsigned int parent_index) +{ + Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed()); + Assert (this->present_level > 0, TriaAccessorExceptions::ExcCellHasNoParent ()); + this->tria->levels[this->present_level]->parents[this->present_index / 2] + = parent_index; +} + + + +template +int +CellAccessor:: +parent_index () const +{ + Assert (this->present_level > 0, TriaAccessorExceptions::ExcCellHasNoParent ()); + + // the parent of two consecutive cells + // is stored only once, since it is + // the same + return this->tria->levels[this->present_level]->parents[this->present_index / 2]; +} + + template TriaIterator > CellAccessor::parent () const @@ -1428,7 +1444,7 @@ CellAccessor::parent () const Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed()); Assert (this->present_level > 0, TriaAccessorExceptions::ExcCellHasNoParent ()); TriaIterator > - q (this->tria, this->present_level-1, this->parent_index ()); + q (this->tria, this->present_level-1, parent_index ()); return q; } diff --git a/deal.II/source/lac/lapack_full_matrix.cc b/deal.II/source/lac/lapack_full_matrix.cc index 2cf6cbee9a..f1e45edc7f 100644 --- a/deal.II/source/lac/lapack_full_matrix.cc +++ b/deal.II/source/lac/lapack_full_matrix.cc @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -30,34 +31,30 @@ DEAL_II_NAMESPACE_OPEN using namespace LAPACKSupport; template -LAPACKFullMatrix::LAPACKFullMatrix(const size_type n) +LAPACKFullMatrix::LAPACKFullMatrix (const size_type n) : TransposeTable (n,n), - state(matrix) + state (matrix) {} - template -LAPACKFullMatrix::LAPACKFullMatrix( - const size_type m, - const size_type n) +LAPACKFullMatrix::LAPACKFullMatrix (const size_type m, + const size_type n) : - TransposeTable (m,n), - state(matrix) + TransposeTable (m, n), + state (matrix) {} - template -LAPACKFullMatrix::LAPACKFullMatrix(const LAPACKFullMatrix &M) +LAPACKFullMatrix::LAPACKFullMatrix (const LAPACKFullMatrix &M) : TransposeTable (M), - state(matrix) + state (matrix) {} - template LAPACKFullMatrix & LAPACKFullMatrix::operator = (const LAPACKFullMatrix &M) @@ -68,6 +65,24 @@ LAPACKFullMatrix::operator = (const LAPACKFullMatrix &M) } +template +void +LAPACKFullMatrix::reinit (const size_type n) +{ + this->TransposeTable::reinit (n, n); + state = LAPACKSupport::matrix; +} + + +template +void +LAPACKFullMatrix::reinit (const size_type m, + const size_type n) +{ + this->TransposeTable::reinit (m, n); + state = LAPACKSupport::matrix; +} + template template @@ -85,6 +100,21 @@ LAPACKFullMatrix::operator = (const FullMatrix &M) } +template +template +LAPACKFullMatrix & +LAPACKFullMatrix::operator = (const SparseMatrix &M) +{ + Assert (this->n_rows() == M.n(), ExcDimensionMismatch(this->n_rows(), M.n())); + Assert (this->n_cols() == M.m(), ExcDimensionMismatch(this->n_cols(), M.m())); + for (size_type i=0; in_rows(); ++i) + for (size_type j=0; jn_cols(); ++j) + (*this)(i,j) = M.el(i,j); + + state = LAPACKSupport::matrix; + return *this; +} + template LAPACKFullMatrix & @@ -100,7 +130,6 @@ LAPACKFullMatrix::operator = (const double d) } - template void LAPACKFullMatrix::vmult ( @@ -159,7 +188,6 @@ LAPACKFullMatrix::vmult ( } - template void LAPACKFullMatrix::Tvmult ( @@ -220,7 +248,6 @@ LAPACKFullMatrix::Tvmult ( } - template void LAPACKFullMatrix::mmult(LAPACKFullMatrix &C, @@ -244,7 +271,6 @@ LAPACKFullMatrix::mmult(LAPACKFullMatrix &C, } - template void LAPACKFullMatrix::mmult(FullMatrix &C, @@ -293,7 +319,6 @@ LAPACKFullMatrix::Tmmult(LAPACKFullMatrix &C, } - template void LAPACKFullMatrix::Tmmult(FullMatrix &C, @@ -318,7 +343,6 @@ LAPACKFullMatrix::Tmmult(FullMatrix &C, } - template void LAPACKFullMatrix::mTmult(LAPACKFullMatrix &C, @@ -367,7 +391,6 @@ LAPACKFullMatrix::mTmult(FullMatrix &C, } - template void LAPACKFullMatrix::TmTmult(LAPACKFullMatrix &C, @@ -391,7 +414,6 @@ LAPACKFullMatrix::TmTmult(LAPACKFullMatrix &C, } - template void LAPACKFullMatrix::TmTmult(FullMatrix &C, @@ -416,7 +438,6 @@ LAPACKFullMatrix::TmTmult(FullMatrix &C, } - template void LAPACKFullMatrix::compute_lu_factorization() @@ -436,7 +457,6 @@ LAPACKFullMatrix::compute_lu_factorization() } - template void LAPACKFullMatrix::compute_svd() @@ -487,7 +507,6 @@ LAPACKFullMatrix::compute_svd() } - template void LAPACKFullMatrix::compute_inverse_svd(const double threshold) @@ -509,7 +528,6 @@ LAPACKFullMatrix::compute_inverse_svd(const double threshold) } - template void LAPACKFullMatrix::invert() @@ -542,7 +560,6 @@ LAPACKFullMatrix::invert() } - template void LAPACKFullMatrix::apply_lu_factorization(Vector &v, @@ -565,7 +582,6 @@ LAPACKFullMatrix::apply_lu_factorization(Vector &v, } - template void LAPACKFullMatrix::apply_lu_factorization(LAPACKFullMatrix &B, @@ -588,12 +604,10 @@ LAPACKFullMatrix::apply_lu_factorization(LAPACKFullMatrix &B, } - template void -LAPACKFullMatrix::compute_eigenvalues( - const bool right, - const bool left) +LAPACKFullMatrix::compute_eigenvalues(const bool right, + const bool left) { Assert(state == matrix, ExcState(state)); const int nn = this->n_cols(); @@ -662,12 +676,11 @@ LAPACKFullMatrix::compute_eigenvalues( template void -LAPACKFullMatrix::compute_eigenvalues_symmetric( - const number lower_bound, - const number upper_bound, - const number abs_accuracy, - Vector &eigenvalues, - FullMatrix &eigenvectors) +LAPACKFullMatrix::compute_eigenvalues_symmetric(const number lower_bound, + const number upper_bound, + const number abs_accuracy, + Vector &eigenvalues, + FullMatrix &eigenvectors) { Assert(state == matrix, ExcState(state)); const int nn = (this->n_cols() > 0 ? this->n_cols() : 1); @@ -744,6 +757,7 @@ LAPACKFullMatrix::compute_eigenvalues_symmetric( eigenvalues.reinit(n_eigenpairs); eigenvectors.reinit(nn, n_eigenpairs, true); + for (size_type i=0; i < static_cast (n_eigenpairs); ++i) { eigenvalues(i) = wr[i]; @@ -844,6 +858,7 @@ LAPACKFullMatrix::compute_generalized_eigenvalues_symmetric( eigenvalues.reinit(n_eigenpairs); eigenvectors.resize(n_eigenpairs); + for (size_type i=0; i < static_cast (n_eigenpairs); ++i) { eigenvalues(i) = wr[i]; @@ -968,6 +983,7 @@ LAPACKFullMatrix::Tvmult_add ( Tvmult(w, v, true); } + template void LAPACKFullMatrix::print_formatted ( diff --git a/deal.II/source/lac/lapack_full_matrix.inst.in b/deal.II/source/lac/lapack_full_matrix.inst.in index 9db46db4a0..23d91651bd 100644 --- a/deal.II/source/lac/lapack_full_matrix.inst.in +++ b/deal.II/source/lac/lapack_full_matrix.inst.in @@ -26,4 +26,7 @@ for (S1, S2 : REAL_SCALARS) { template LAPACKFullMatrix & LAPACKFullMatrix::operator = (const FullMatrix &M); + + template LAPACKFullMatrix & + LAPACKFullMatrix::operator = (const SparseMatrix &M); } diff --git a/deal.II/source/lac/petsc_solver.cc b/deal.II/source/lac/petsc_solver.cc index bf1cdbb142..4524e91c37 100644 --- a/deal.II/source/lac/petsc_solver.cc +++ b/deal.II/source/lac/petsc_solver.cc @@ -803,7 +803,9 @@ namespace PETScWrappers #else // PETSC_HAVE_MUMPS Assert (false, ExcMessage ("Your PETSc installation does not include a copy of " - "MUMPS package necessary for this solver")); + "the MUMPS package necessary for this solver. You will need to configure " + "PETSc so that it includes MUMPS, recompile it, and then re-configure " + "and recompile deal.II as well.")); // Cast to void to silence compiler warnings (void) A; diff --git a/deal.II/source/lac/trilinos_precondition.cc b/deal.II/source/lac/trilinos_precondition.cc index be35b10663..a526b310d7 100644 --- a/deal.II/source/lac/trilinos_precondition.cc +++ b/deal.II/source/lac/trilinos_precondition.cc @@ -534,6 +534,12 @@ namespace TrilinosWrappers {} + PreconditionAMG::~PreconditionAMG() + { + preconditioner.reset(); + trilinos_matrix.reset(); + } + void PreconditionAMG:: initialize (const SparseMatrix &matrix, diff --git a/deal.II/source/numerics/derivative_approximation.cc b/deal.II/source/numerics/derivative_approximation.cc index 4cf3e4bed6..28ad54572b 100644 --- a/deal.II/source/numerics/derivative_approximation.cc +++ b/deal.II/source/numerics/derivative_approximation.cc @@ -1072,16 +1072,16 @@ namespace DerivativeApproximation } - template class DH, class InputVector, int order, int spacedim> + template void - approximate_derivative_tensor (const Mapping &mapping, - const DH &dof, + approximate_derivative_tensor (const Mapping &mapping, + const DH &dof, const InputVector &solution, - const typename DH::active_cell_iterator &cell, - Tensor &derivative, + const typename DH::active_cell_iterator &cell, + Tensor &derivative, const unsigned int component) { - internal::approximate_cell::DerivDescr,dim,DH,InputVector> + internal::approximate_cell::DerivDescr> (mapping, dof, solution, @@ -1092,17 +1092,17 @@ namespace DerivativeApproximation - template class DH, class InputVector, int order, int spacedim> + template void - approximate_derivative_tensor (const DH &dof, + approximate_derivative_tensor (const DH &dof, const InputVector &solution, - const typename DH::active_cell_iterator &cell, - Tensor &derivative, + const typename DH::active_cell_iterator &cell, + Tensor &derivative, const unsigned int component) { // just call the respective function with Q1 mapping - approximate_derivative_tensor - (StaticMappingQ1::mapping, + approximate_derivative_tensor + (StaticMappingQ1::mapping, dof, solution, cell, diff --git a/deal.II/source/numerics/derivative_approximation.inst.in b/deal.II/source/numerics/derivative_approximation.inst.in index 430c8a095f..10494f168b 100644 --- a/deal.II/source/numerics/derivative_approximation.inst.in +++ b/deal.II/source/numerics/derivative_approximation.inst.in @@ -55,7 +55,7 @@ approximate_second_derivative template void -approximate_derivative_tensor +approximate_derivative_tensor (const Mapping & mapping, const DH &dof_handler, const VEC &solution, @@ -65,7 +65,7 @@ approximate_derivative_tensor template void -approximate_derivative_tensor +approximate_derivative_tensor (const Mapping & mapping, const DH &dof_handler, const VEC &solution, @@ -75,7 +75,7 @@ approximate_derivative_tensor template void -approximate_derivative_tensor +approximate_derivative_tensor (const Mapping & mapping, const DH &dof_handler, const VEC &solution, @@ -85,7 +85,7 @@ approximate_derivative_tensor template void -approximate_derivative_tensor +approximate_derivative_tensor (const DH &dof_handler, const VEC &solution, const DH::active_cell_iterator &cell, @@ -94,7 +94,7 @@ approximate_derivative_tensor template void -approximate_derivative_tensor +approximate_derivative_tensor (const DH &dof_handler, const VEC &solution, const DH::active_cell_iterator &cell, @@ -103,7 +103,7 @@ approximate_derivative_tensor template void -approximate_derivative_tensor +approximate_derivative_tensor (const DH &dof_handler, const VEC &solution, const DH::active_cell_iterator &cell, diff --git a/deal.II/source/numerics/solution_transfer.cc b/deal.II/source/numerics/solution_transfer.cc index 0f5ffc5873..f7f38b4c26 100644 --- a/deal.II/source/numerics/solution_transfer.cc +++ b/deal.II/source/numerics/solution_transfer.cc @@ -287,8 +287,6 @@ prepare_for_coarsening_and_refinement(const std::vector &all_in) std::vector > (in_size)) .swap(dof_values_on_cell); - typename VECTOR::value_type zero_val = typename VECTOR::value_type(); - Table<2,FullMatrix > interpolation_hp; std::vector > restriction_is_additive; diff --git a/deal.II/source/numerics/vector_tools_constraints.inst.in b/deal.II/source/numerics/vector_tools_constraints.inst.in index f3bfa2a7d3..e78a376eb8 100644 --- a/deal.II/source/numerics/vector_tools_constraints.inst.in +++ b/deal.II/source/numerics/vector_tools_constraints.inst.in @@ -1,7 +1,7 @@ // --------------------------------------------------------------------- // $Id$ // -// Copyright (C) 1998 - 2013 by the deal.II authors +// Copyright (C) 1998 - 2014 by the deal.II authors // // This file is part of the deal.II library. // @@ -18,41 +18,78 @@ //TODO[SP]: replace by // where applicable and move to codimension cases above also when applicable for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS) - { - namespace VectorTools \{ +{ + namespace VectorTools \{ #if deal_II_dimension == deal_II_space_dimension #if deal_II_dimension != 1 - template - void - compute_no_normal_flux_constraints (const DoFHandler &dof_handler, - const unsigned int first_vector_component, - const std::set &boundary_ids, - ConstraintMatrix &constraints, - const Mapping &mapping); - template - void - compute_no_normal_flux_constraints (const hp::DoFHandler &dof_handler, - const unsigned int first_vector_component, - const std::set &boundary_ids, - ConstraintMatrix &constraints, - const Mapping &mapping); + template + void + compute_nonzero_normal_flux_constraints (const DoFHandler &dof_handler, + const unsigned int first_vector_component, + const std::set &boundary_ids, + FunctionMap::type &function_map, + ConstraintMatrix &constraints, + const Mapping &mapping); - template - void - compute_normal_flux_constraints (const DoFHandler &dof_handler, - const unsigned int first_vector_component, - const std::set &boundary_ids, - ConstraintMatrix &constraints, - const Mapping &mapping); - template - void - compute_normal_flux_constraints (const hp::DoFHandler &dof_handler, - const unsigned int first_vector_component, - const std::set &boundary_ids, - ConstraintMatrix &constraints, - const Mapping &mapping); + template + void + compute_nonzero_normal_flux_constraints (const hp::DoFHandler &dof_handler, + const unsigned int first_vector_component, + const std::set &boundary_ids, + FunctionMap::type &function_map, + ConstraintMatrix &constraints, + const Mapping &mapping); + + template + void + compute_nonzero_tangential_flux_constraints (const DoFHandler &dof_handler, + const unsigned int first_vector_component, + const std::set &boundary_ids, + FunctionMap::type &function_map, + ConstraintMatrix &constraints, + const Mapping &mapping); + template + void + compute_nonzero_tangential_flux_constraints (const hp::DoFHandler &dof_handler, + const unsigned int first_vector_component, + const std::set &boundary_ids, + FunctionMap::type &function_map, + ConstraintMatrix &constraints, + const Mapping &mapping); + + template + void + compute_no_normal_flux_constraints (const DoFHandler &dof_handler, + const unsigned int first_vector_component, + const std::set &boundary_ids, + ConstraintMatrix &constraints, + const Mapping &mapping); + + template + void + compute_no_normal_flux_constraints (const hp::DoFHandler &dof_handler, + const unsigned int first_vector_component, + const std::set &boundary_ids, + ConstraintMatrix &constraints, + const Mapping &mapping); + + template + void + compute_normal_flux_constraints (const DoFHandler &dof_handler, + const unsigned int first_vector_component, + const std::set &boundary_ids, + ConstraintMatrix &constraints, + const Mapping &mapping); + + template + void + compute_normal_flux_constraints (const hp::DoFHandler &dof_handler, + const unsigned int first_vector_component, + const std::set &boundary_ids, + ConstraintMatrix &constraints, + const Mapping &mapping); #endif #endif - \} - } + \} +} \ No newline at end of file diff --git a/tests/base/aligned_vector_01.cc b/tests/base/aligned_vector_01.cc new file mode 100644 index 0000000000..b2a1026415 --- /dev/null +++ b/tests/base/aligned_vector_01.cc @@ -0,0 +1,101 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2012 - 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 for AlignedVector which tests the basic stuff in the +// aligned vector + +#include "../tests.h" +#include +#include +#include + +#include + + +void test () +{ + typedef AlignedVector VEC; + VEC a(4); + deallog << "Constructor: "; + for (unsigned int i=0; i + +#include "../tests.h" +#include +#include +#include + +#include + + +void test () +{ + typedef AlignedVector VEC; + VEC a(4); + deallog << "Constructor: "; + for (unsigned int i=0; i which tests the basic stuff in the -// aligned vector +// test for arithmetic operations on VectorizedArray #include "../tests.h" #include -#include -#include +#include -#include +#include +template void test () { - typedef AlignedVector VEC; - VEC a(4); - deallog << "Constructor: "; - for (unsigned int i=0; i a, b, c; + const unsigned int n_vectors = VectorizedArray::n_array_elements; + a = Number(2.); + b = Number(-1.); + for (unsigned int i=0; i d = a + b; + for (unsigned int i=0; i e = d - b; + for (unsigned int i=0; i::epsilon(), + ExcInternalError()); + + deallog << "OK" << std::endl + << "Absolute value: "; + d = -c; + d = std::abs(d); + for (unsigned int i=0; i::epsilon(), + ExcInternalError()); + deallog << "OK" << std::endl + << "Cosine: "; + e = std::cos(c); + for (unsigned int i=0; i::epsilon(), + ExcInternalError()); + deallog << "OK" << std::endl + << "Tangent: "; + d = std::tan(e); + for (unsigned int i=0; i::epsilon(), + ExcInternalError()); + deallog << "OK" << std::endl + << "Exponential: "; + d = std::exp(c-a); + for (unsigned int i=0; i::epsilon(), + ExcInternalError()); + deallog << "OK" << std::endl + << "Logarithm: "; + e = std::log(d); + for (unsigned int i=0; i::epsilon(), + ExcInternalError()); deallog << "OK" << std::endl; } @@ -97,5 +155,17 @@ int main() deallog.depth_console(0); deallog.threshold_double(1.e-10); - test (); + deallog.push("double"); + test (); + deallog.pop(); + deallog.push("float"); + test (); + deallog.pop(); + + // test long double: in that case, the default + // path of VectorizedArray is taken no matter + // what was done for double or float + deallog.push("long double"); + test (); + deallog.pop(); } diff --git a/tests/base/vectorization_01.output b/tests/base/vectorization_01.output index 1b934a8299..c11369e533 100644 --- a/tests/base/vectorization_01.output +++ b/tests/base/vectorization_01.output @@ -1,8 +1,55 @@ -DEAL::Constructor: 0 0 0 0 -DEAL::Insertion: 0 0 1 0 5 42 0 0 1 0 5 42 27 -DEAL::Shrinking: 0 0 1 0 -DEAL::Reserve: 0 0 1 0 -DEAL::Assignment: 0 0 1 0 5 42 27 -DEAL::Check large initialization: OK -DEAL::Check large resize: OK +DEAL:double::Addition: OK +DEAL:double::Subtraction: OK +DEAL:double::Multiplication: OK +DEAL:double::Division: OK +DEAL:double::Multiplication scalar: OK +DEAL:double::Division scalar left: OK +DEAL:double::Division scalar right: OK +DEAL:double::Unary operator -: OK +DEAL:double::Unary operator +: OK +DEAL:double::Square root: OK +DEAL:double::Absolute value: OK +DEAL:double::Maximum value: OK +DEAL:double::Minimum value: OK +DEAL:double::Sine: OK +DEAL:double::Cosine: OK +DEAL:double::Tangent: OK +DEAL:double::Exponential: OK +DEAL:double::Logarithm: OK +DEAL:float::Addition: OK +DEAL:float::Subtraction: OK +DEAL:float::Multiplication: OK +DEAL:float::Division: OK +DEAL:float::Multiplication scalar: OK +DEAL:float::Division scalar left: OK +DEAL:float::Division scalar right: OK +DEAL:float::Unary operator -: OK +DEAL:float::Unary operator +: OK +DEAL:float::Square root: OK +DEAL:float::Absolute value: OK +DEAL:float::Maximum value: OK +DEAL:float::Minimum value: OK +DEAL:float::Sine: OK +DEAL:float::Cosine: OK +DEAL:float::Tangent: OK +DEAL:float::Exponential: OK +DEAL:float::Logarithm: OK +DEAL:long double::Addition: OK +DEAL:long double::Subtraction: OK +DEAL:long double::Multiplication: OK +DEAL:long double::Division: OK +DEAL:long double::Multiplication scalar: OK +DEAL:long double::Division scalar left: OK +DEAL:long double::Division scalar right: OK +DEAL:long double::Unary operator -: OK +DEAL:long double::Unary operator +: OK +DEAL:long double::Square root: OK +DEAL:long double::Absolute value: OK +DEAL:long double::Maximum value: OK +DEAL:long double::Minimum value: OK +DEAL:long double::Sine: OK +DEAL:long double::Cosine: OK +DEAL:long double::Tangent: OK +DEAL:long double::Exponential: OK +DEAL:long double::Logarithm: OK diff --git a/tests/base/vectorization_04.cc b/tests/base/vectorization_04.cc deleted file mode 100644 index bb2e43046f..0000000000 --- a/tests/base/vectorization_04.cc +++ /dev/null @@ -1,171 +0,0 @@ -// --------------------------------------------------------------------- -// $Id$ -// -// Copyright (C) 2012 - 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 for arithmetic operations on VectorizedArray - -#include "../tests.h" -#include -#include - -#include - - -template -void test () -{ - // since the number of array elements is system dependent, it is not a good - // idea to print them to an output file. Instead, check the values manually - VectorizedArray a, b, c; - const unsigned int n_vectors = VectorizedArray::n_array_elements; - a = Number(2.); - b = Number(-1.); - for (unsigned int i=0; i d = a + b; - for (unsigned int i=0; i e = d - b; - for (unsigned int i=0; i::epsilon(), - ExcInternalError()); - - deallog << "OK" << std::endl - << "Absolute value: "; - d = -c; - d = std::abs(d); - for (unsigned int i=0; i::epsilon(), - ExcInternalError()); - deallog << "OK" << std::endl - << "Cosine: "; - e = std::cos(c); - for (unsigned int i=0; i::epsilon(), - ExcInternalError()); - deallog << "OK" << std::endl - << "Tangent: "; - d = std::tan(e); - for (unsigned int i=0; i::epsilon(), - ExcInternalError()); - deallog << "OK" << std::endl - << "Exponential: "; - d = std::exp(c-a); - for (unsigned int i=0; i::epsilon(), - ExcInternalError()); - deallog << "OK" << std::endl - << "Logarithm: "; - e = std::log(d); - for (unsigned int i=0; i::epsilon(), - ExcInternalError()); - deallog << "OK" << std::endl; -} - - - - -int main() -{ - std::ofstream logfile("output"); - deallog.attach(logfile); - deallog.depth_console(0); - deallog.threshold_double(1.e-10); - - deallog.push("double"); - test (); - deallog.pop(); - deallog.push("float"); - test (); - deallog.pop(); - - // test long double: in that case, the default - // path of VectorizedArray is taken no matter - // what was done for double or float - deallog.push("long double"); - test (); - deallog.pop(); -} diff --git a/tests/base/vectorization_04.output b/tests/base/vectorization_04.output deleted file mode 100644 index c11369e533..0000000000 --- a/tests/base/vectorization_04.output +++ /dev/null @@ -1,55 +0,0 @@ - -DEAL:double::Addition: OK -DEAL:double::Subtraction: OK -DEAL:double::Multiplication: OK -DEAL:double::Division: OK -DEAL:double::Multiplication scalar: OK -DEAL:double::Division scalar left: OK -DEAL:double::Division scalar right: OK -DEAL:double::Unary operator -: OK -DEAL:double::Unary operator +: OK -DEAL:double::Square root: OK -DEAL:double::Absolute value: OK -DEAL:double::Maximum value: OK -DEAL:double::Minimum value: OK -DEAL:double::Sine: OK -DEAL:double::Cosine: OK -DEAL:double::Tangent: OK -DEAL:double::Exponential: OK -DEAL:double::Logarithm: OK -DEAL:float::Addition: OK -DEAL:float::Subtraction: OK -DEAL:float::Multiplication: OK -DEAL:float::Division: OK -DEAL:float::Multiplication scalar: OK -DEAL:float::Division scalar left: OK -DEAL:float::Division scalar right: OK -DEAL:float::Unary operator -: OK -DEAL:float::Unary operator +: OK -DEAL:float::Square root: OK -DEAL:float::Absolute value: OK -DEAL:float::Maximum value: OK -DEAL:float::Minimum value: OK -DEAL:float::Sine: OK -DEAL:float::Cosine: OK -DEAL:float::Tangent: OK -DEAL:float::Exponential: OK -DEAL:float::Logarithm: OK -DEAL:long double::Addition: OK -DEAL:long double::Subtraction: OK -DEAL:long double::Multiplication: OK -DEAL:long double::Division: OK -DEAL:long double::Multiplication scalar: OK -DEAL:long double::Division scalar left: OK -DEAL:long double::Division scalar right: OK -DEAL:long double::Unary operator -: OK -DEAL:long double::Unary operator +: OK -DEAL:long double::Square root: OK -DEAL:long double::Absolute value: OK -DEAL:long double::Maximum value: OK -DEAL:long double::Minimum value: OK -DEAL:long double::Sine: OK -DEAL:long double::Cosine: OK -DEAL:long double::Tangent: OK -DEAL:long double::Exponential: OK -DEAL:long double::Logarithm: OK diff --git a/tests/bits/find_cell_12.cc b/tests/bits/find_cell_12.cc new file mode 100644 index 0000000000..cc8ee77dfc --- /dev/null +++ b/tests/bits/find_cell_12.cc @@ -0,0 +1,105 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2003 - 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. +// +// --------------------------------------------------------------------- + + + +// find_active_cell_around_point goes into an endless loop, reported +// on the mailing list by Giorgos Kourakos (2014-04-10). + +#include "../tests.h" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include +#include +#include +#include +#include +#include + +using namespace dealii; + +void test() +{ + Triangulation<2> triangulation; + + Point<2> left_bottom(0,-270); + Point<2> right_top(5000,30); + std::vector n_cells; + n_cells.push_back(10); + n_cells.push_back(2); + + + GridGenerator::subdivided_hyper_rectangle(triangulation, + n_cells, + left_bottom, + right_top, + true); + + typename Triangulation<2>::active_cell_iterator + cell = triangulation.begin_active(), + endc = triangulation.end(); + for (; cell!=endc; ++cell){ + Point<2> cell_center = cell->center(); + if (abs(cell_center(0) - 1500) < 550){ + cell->set_refine_flag (); + } + } + + triangulation.execute_coarsening_and_refinement (); + + Point<2> test_point(250, 195); + std::cout << "Checking Point " << test_point << std::endl; + try + { + std::pair::active_cell_iterator, Point<2> > current_cell = + GridTools::find_active_cell_around_point(MappingQ1<2>(), triangulation, test_point); + + deallog << "cell: index = " << current_cell.first->index() + << " level = " << current_cell.first->level() << std::endl; + deallog << " pos: " << current_cell.second << std::endl; + } + catch (GridTools::ExcPointNotFound<2> &e) + { + deallog << "outside" << std::endl; + } + deallog << "done" << std::endl; +} + +int main (int argc, char **argv) +{ + initlog(); + + test(); + + return 0; +} diff --git a/tests/bits/find_cell_12.output b/tests/bits/find_cell_12.output new file mode 100644 index 0000000000..9ae336e2b7 --- /dev/null +++ b/tests/bits/find_cell_12.output @@ -0,0 +1,3 @@ + +DEAL::outside +DEAL::done diff --git a/tests/deal.II/curl_curl_01.cc b/tests/deal.II/curl_curl_01.cc index 2718b9df20..78c98e4bc3 100644 --- a/tests/deal.II/curl_curl_01.cc +++ b/tests/deal.II/curl_curl_01.cc @@ -1,7 +1,7 @@ // --------------------------------------------------------------------- // $Id$ // -// Copyright (C) 2010 - 2013 by the deal.II authors +// Copyright (C) 2010 - 2014 by the deal.II authors // // This file is part of the deal.II library. // @@ -110,9 +110,11 @@ public: virtual void vector_value_list (const std::vector > &points, std::vector > &values) const; private: - const double PI = dealii::numbers::PI; - const double bc_constant = 0.1; + static const double bc_constant; }; +template const double ExactSolution::bc_constant = 0.1; + + // RIGHT HAND SIDE CLASS template class RightHandSide : public Function @@ -124,9 +126,10 @@ public: virtual void vector_value_list (const std::vector > &points, std::vector > &value_list) const; private: - const double PI = dealii::numbers::PI; - const double bc_constant = 0.1; + static const double bc_constant; }; +template const double RightHandSide::bc_constant = 0.1; + // DEFINE EXACT SOLUTION MEMBERS template double ExactSolution::value(const Point &p, @@ -137,8 +140,8 @@ double ExactSolution::value(const Point &p, double val = -1000; switch(component) { - case 0: val = cos(PI*p(0))*sin(PI*p(1)) + bc_constant; - case 1: val = -sin(PI*p(0))*cos(PI*p(1)) + bc_constant; + case 0: val = cos(numbers::PI*p(0))*sin(numbers::PI*p(1)) + bc_constant; + case 1: val = -sin(numbers::PI*p(0))*cos(numbers::PI*p(1)) + bc_constant; } return val; @@ -148,8 +151,8 @@ void ExactSolution::vector_value(const Point &p, Vector &result) const { Assert(dim >= 2, ExcNotImplemented()); - result(0) = cos(PI*p(0))*sin(PI*p(1)) + bc_constant; - result(1) = -sin(PI*p(0))*cos(PI*p(1)) + bc_constant; + result(0) = cos(numbers::PI*p(0))*sin(numbers::PI*p(1)) + bc_constant; + result(1) = -sin(numbers::PI*p(0))*cos(numbers::PI*p(1)) + bc_constant; } template @@ -165,9 +168,9 @@ void ExactSolution::value_list (const std::vector > &points, switch(component) { case 0: - values[i] = cos(PI*p(0))*sin(PI*p(1)) + bc_constant; + values[i] = cos(numbers::PI*p(0))*sin(numbers::PI*p(1)) + bc_constant; case 1: - values[i] = -sin(PI*p(0))*cos(PI*p(1)) + bc_constant; + values[i] = -sin(numbers::PI*p(0))*cos(numbers::PI*p(1)) + bc_constant; } } } @@ -181,8 +184,8 @@ void ExactSolution::vector_value_list (const std::vector > &poin for (unsigned int i=0; i &p = points[i]; - values[i](0) = cos(PI*p(0))*sin(PI*p(1)) + bc_constant; - values[i](1) = -sin(PI*p(0))*cos(PI*p(1)) + bc_constant; + values[i](0) = cos(numbers::PI*p(0))*sin(numbers::PI*p(1)) + bc_constant; + values[i](1) = -sin(numbers::PI*p(0))*cos(numbers::PI*p(1)) + bc_constant; } } // END EXACT SOLUTION MEMBERS @@ -201,8 +204,8 @@ void RightHandSide::vector_value (const Point &p, Assert (dim >= 2, ExcNotImplemented()); //2D solution - values(0) = (2*PI*PI + 1)*cos(PI*p(0))*sin(PI*p(1)) + bc_constant; - values(1) = -(2*PI*PI + 1)*sin(PI*p(0))*cos(PI*p(1)) + bc_constant; + values(0) = (2*numbers::PI*numbers::PI + 1)*cos(numbers::PI*p(0))*sin(numbers::PI*p(1)) + bc_constant; + values(1) = -(2*numbers::PI*numbers::PI + 1)*sin(numbers::PI*p(0))*cos(numbers::PI*p(1)) + bc_constant; } template void RightHandSide::vector_value_list (const std::vector > &points, diff --git a/tests/deal.II/grid_transform.cc b/tests/deal.II/grid_transform.cc index b417626514..3c6dcb2f0e 100644 --- a/tests/deal.II/grid_transform.cc +++ b/tests/deal.II/grid_transform.cc @@ -1,7 +1,7 @@ // --------------------------------------------------------------------- // $Id$ // -// Copyright (C) 1998 - 2013 by the deal.II authors +// Copyright (C) 1998 - 2014 by the deal.II authors // // This file is part of the deal.II library. // @@ -15,6 +15,8 @@ // --------------------------------------------------------------------- +// test the deformation of a circular annulus to a domain where the central +// circle is displaced #include "../tests.h" diff --git a/tests/deal.II/grid_transform_02.cc b/tests/deal.II/grid_transform_02.cc new file mode 100644 index 0000000000..9ceb05b33c --- /dev/null +++ b/tests/deal.II/grid_transform_02.cc @@ -0,0 +1,89 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 1998 - 2014 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. +// +// --------------------------------------------------------------------- + + +// Verify that GridTools::laplace_transform can deal with interior +// nodes being pinned to a new location as well. The test itself +// doesn't make much sense since it leads to a few inverted cells, but +// it allows for easy visual inspection that the desired result +// happens. +// +// (Testcase adapted from one by Denis Davydov.) + + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +int main () +{ + const int dim = 2; + + Triangulation< dim > tria; + std::map< unsigned int, Point< dim > > new_points; + const unsigned int N = 16; + GridGenerator::subdivided_hyper_cube (tria, N, -5, 5); + + // find the vertex at the origin + Triangulation::active_cell_iterator + cell = GridTools::find_active_cell_around_point (tria,Point()); + + unsigned int best_vertex = cell->vertex_index(0);//vertex number on local triangulation + Point best_pos = cell->vertex(0); + double best_dist = Point().distance(best_pos); + + for (unsigned int vertex_no = 1; vertex_no < GeometryInfo::vertices_per_cell; vertex_no++) { + const double dist = Point().distance(cell->vertex(vertex_no)); + if (dist < best_dist) + { + best_pos = cell->vertex(vertex_no); + best_vertex = cell->vertex_index(vertex_no); + best_dist = dist; + } + } + // move the point at the origin by 2 units to the right + new_points[best_vertex] = Point(); + new_points[best_vertex][0] += 2; + + // now pin all of the points on the boundary + cell = tria.begin_active(); + Triangulation::active_cell_iterator endc = tria.end(); + + for ( ; cell != endc; ++cell) + if (cell->at_boundary() == true) + for (unsigned int face = 0; face < GeometryInfo::faces_per_cell;++face) + if (cell->face(face)->at_boundary() == true) + for (unsigned int v=0; v < GeometryInfo::vertices_per_face;++v) { + unsigned int vertex_number = cell->face(face)->vertex_index(v); + new_points[vertex_number] = cell->face(face)->vertex(v); + } + + // then compute new point locations and output the result + GridTools::laplace_transform (new_points,tria); + std::ofstream out ("output"); + GridOut grid_out; + grid_out.write_eps (tria, out); +} diff --git a/tests/deal.II/grid_transform_02.output b/tests/deal.II/grid_transform_02.output new file mode 100644 index 0000000000..a792b88e24 --- /dev/null +++ b/tests/deal.II/grid_transform_02.output @@ -0,0 +1,1037 @@ +%!PS-Adobe-2.0 EPSF-1.2 +%%Title: deal.II Output +%%Creator: the deal.II library + +%%BoundingBox: 0 0 301 301 +/m {moveto} bind def +/x {lineto stroke} bind def +/b {0 0 0 setrgbcolor} def +/r {1 0 0 setrgbcolor} def +%%EndProlog + +0.5 setlinewidth +b 0 1.46283e-11 m 1.27098e-11 18.75 x +b 18.75 5.32907e-14 m 19.1265 18.75 x +b 0 1.46283e-11 m 18.75 5.32907e-14 x +b 1.27098e-11 18.75 m 19.1265 18.75 x +b 18.75 5.32907e-14 m 19.1265 18.75 x +b 37.5 5.32907e-14 m 38.2524 18.75 x +b 18.75 5.32907e-14 m 37.5 5.32907e-14 x +b 19.1265 18.75 m 38.2524 18.75 x +b 37.5 5.32907e-14 m 38.2524 18.75 x +b 56.25 0 m 57.3735 18.75 x +b 37.5 5.32907e-14 m 56.25 0 x +b 38.2524 18.75 m 57.3735 18.75 x +b 56.25 0 m 57.3735 18.75 x +b 75 0 m 76.479 18.75 x +b 56.25 0 m 75 0 x +b 57.3735 18.75 m 76.479 18.75 x +b 75 0 m 76.479 18.75 x +b 93.75 5.32907e-14 m 95.5495 18.75 x +b 75 0 m 93.75 5.32907e-14 x +b 76.479 18.75 m 95.5495 18.75 x +b 93.75 5.32907e-14 m 95.5495 18.75 x +b 112.5 5.32907e-14 m 114.559 18.75 x +b 93.75 5.32907e-14 m 112.5 5.32907e-14 x +b 95.5495 18.75 m 114.559 18.75 x +b 112.5 5.32907e-14 m 114.559 18.75 x +b 131.25 5.32907e-14 m 133.479 18.75 x +b 112.5 5.32907e-14 m 131.25 5.32907e-14 x +b 114.559 18.75 m 133.479 18.75 x +b 131.25 5.32907e-14 m 133.479 18.75 x +b 150 5.32907e-14 m 152.289 18.75 x +b 131.25 5.32907e-14 m 150 5.32907e-14 x +b 133.479 18.75 m 152.289 18.75 x +b 150 5.32907e-14 m 152.289 18.75 x +b 168.75 5.32907e-14 m 170.979 18.75 x +b 150 5.32907e-14 m 168.75 5.32907e-14 x +b 152.289 18.75 m 170.979 18.75 x +b 168.75 5.32907e-14 m 170.979 18.75 x +b 187.5 5.32907e-14 m 189.559 18.75 x +b 168.75 5.32907e-14 m 187.5 5.32907e-14 x +b 170.979 18.75 m 189.559 18.75 x +b 187.5 5.32907e-14 m 189.559 18.75 x +b 206.25 5.32907e-14 m 208.049 18.75 x +b 187.5 5.32907e-14 m 206.25 5.32907e-14 x +b 189.559 18.75 m 208.049 18.75 x +b 206.25 5.32907e-14 m 208.049 18.75 x +b 225 5.32907e-14 m 226.479 18.75 x +b 206.25 5.32907e-14 m 225 5.32907e-14 x +b 208.049 18.75 m 226.479 18.75 x +b 225 5.32907e-14 m 226.479 18.75 x +b 243.75 5.32907e-14 m 244.874 18.75 x +b 225 5.32907e-14 m 243.75 5.32907e-14 x +b 226.479 18.75 m 244.874 18.75 x +b 243.75 5.32907e-14 m 244.874 18.75 x +b 262.5 5.32907e-14 m 263.252 18.75 x +b 243.75 5.32907e-14 m 262.5 5.32907e-14 x +b 244.874 18.75 m 263.252 18.75 x +b 262.5 5.32907e-14 m 263.252 18.75 x +b 281.25 5.32907e-14 m 281.627 18.75 x +b 262.5 5.32907e-14 m 281.25 5.32907e-14 x +b 263.252 18.75 m 281.627 18.75 x +b 281.25 5.32907e-14 m 281.627 18.75 x +b 300 1.46283e-11 m 300 18.75 x +b 281.25 5.32907e-14 m 300 1.46283e-11 x +b 281.627 18.75 m 300 18.75 x +b 1.27098e-11 18.75 m 1.27098e-11 37.5 x +b 19.1265 18.75 m 19.5024 37.5 x +b 1.27098e-11 18.75 m 19.1265 18.75 x +b 1.27098e-11 37.5 m 19.5024 37.5 x +b 19.1265 18.75 m 19.5024 37.5 x +b 38.2524 18.75 m 39.0073 37.5 x +b 19.1265 18.75 m 38.2524 18.75 x +b 19.5024 37.5 m 39.0073 37.5 x +b 38.2524 18.75 m 39.0073 37.5 x +b 57.3735 18.75 m 58.5096 37.5 x +b 38.2524 18.75 m 57.3735 18.75 x +b 39.0073 37.5 m 58.5096 37.5 x +b 57.3735 18.75 m 58.5096 37.5 x +b 76.479 18.75 m 77.99 37.5 x +b 57.3735 18.75 m 76.479 18.75 x +b 58.5096 37.5 m 77.99 37.5 x +b 76.479 18.75 m 77.99 37.5 x +b 95.5495 18.75 m 97.409 37.5 x +b 76.479 18.75 m 95.5495 18.75 x +b 77.99 37.5 m 97.409 37.5 x +b 95.5495 18.75 m 97.409 37.5 x +b 114.559 18.75 m 116.709 37.5 x +b 95.5495 18.75 m 114.559 18.75 x +b 97.409 37.5 m 116.709 37.5 x +b 114.559 18.75 m 116.709 37.5 x +b 133.479 18.75 m 135.824 37.5 x +b 114.559 18.75 m 133.479 18.75 x +b 116.709 37.5 m 135.824 37.5 x +b 133.479 18.75 m 135.824 37.5 x +b 152.289 18.75 m 154.703 37.5 x +b 133.479 18.75 m 152.289 18.75 x +b 135.824 37.5 m 154.703 37.5 x +b 152.289 18.75 m 154.703 37.5 x +b 170.979 18.75 m 173.324 37.5 x +b 152.289 18.75 m 170.979 18.75 x +b 154.703 37.5 m 173.324 37.5 x +b 170.979 18.75 m 173.324 37.5 x +b 189.559 18.75 m 191.709 37.5 x +b 170.979 18.75 m 189.559 18.75 x +b 173.324 37.5 m 191.709 37.5 x +b 189.559 18.75 m 191.709 37.5 x +b 208.049 18.75 m 209.909 37.5 x +b 189.559 18.75 m 208.049 18.75 x +b 191.709 37.5 m 209.909 37.5 x +b 208.049 18.75 m 209.909 37.5 x +b 226.479 18.75 m 227.99 37.5 x +b 208.049 18.75 m 226.479 18.75 x +b 209.909 37.5 m 227.99 37.5 x +b 226.479 18.75 m 227.99 37.5 x +b 244.874 18.75 m 246.01 37.5 x +b 226.479 18.75 m 244.874 18.75 x +b 227.99 37.5 m 246.01 37.5 x +b 244.874 18.75 m 246.01 37.5 x +b 263.252 18.75 m 264.007 37.5 x +b 244.874 18.75 m 263.252 18.75 x +b 246.01 37.5 m 264.007 37.5 x +b 263.252 18.75 m 264.007 37.5 x +b 281.627 18.75 m 282.002 37.5 x +b 263.252 18.75 m 281.627 18.75 x +b 264.007 37.5 m 282.002 37.5 x +b 281.627 18.75 m 282.002 37.5 x +b 300 18.75 m 300 37.5 x +b 281.627 18.75 m 300 18.75 x +b 282.002 37.5 m 300 37.5 x +b 1.27098e-11 37.5 m 1.27365e-11 56.25 x +b 19.5024 37.5 m 19.8735 56.25 x +b 1.27098e-11 37.5 m 19.5024 37.5 x +b 1.27365e-11 56.25 m 19.8735 56.25 x +b 19.5024 37.5 m 19.8735 56.25 x +b 39.0073 37.5 m 39.7596 56.25 x +b 19.5024 37.5 m 39.0073 37.5 x +b 19.8735 56.25 m 39.7596 56.25 x +b 39.0073 37.5 m 39.7596 56.25 x +b 58.5096 37.5 m 59.6605 56.25 x +b 39.0073 37.5 m 58.5096 37.5 x +b 39.7596 56.25 m 59.6605 56.25 x +b 58.5096 37.5 m 59.6605 56.25 x +b 77.99 37.5 m 79.5548 56.25 x +b 58.5096 37.5 m 77.99 37.5 x +b 59.6605 56.25 m 79.5548 56.25 x +b 77.99 37.5 m 79.5548 56.25 x +b 97.409 37.5 m 99.384 56.25 x +b 77.99 37.5 m 97.409 37.5 x +b 79.5548 56.25 m 99.384 56.25 x +b 97.409 37.5 m 99.384 56.25 x +b 116.709 37.5 m 119.047 56.25 x +b 97.409 37.5 m 116.709 37.5 x +b 99.384 56.25 m 119.047 56.25 x +b 116.709 37.5 m 119.047 56.25 x +b 135.824 37.5 m 138.419 56.25 x +b 116.709 37.5 m 135.824 37.5 x +b 119.047 56.25 m 138.419 56.25 x +b 135.824 37.5 m 138.419 56.25 x +b 154.703 37.5 m 157.39 56.25 x +b 135.824 37.5 m 154.703 37.5 x +b 138.419 56.25 m 157.39 56.25 x +b 154.703 37.5 m 157.39 56.25 x +b 173.324 37.5 m 175.919 56.25 x +b 154.703 37.5 m 173.324 37.5 x +b 157.39 56.25 m 175.919 56.25 x +b 173.324 37.5 m 175.919 56.25 x +b 191.709 37.5 m 194.047 56.25 x +b 173.324 37.5 m 191.709 37.5 x +b 175.919 56.25 m 194.047 56.25 x +b 191.709 37.5 m 194.047 56.25 x +b 209.909 37.5 m 211.884 56.25 x +b 191.709 37.5 m 209.909 37.5 x +b 194.047 56.25 m 211.884 56.25 x +b 209.909 37.5 m 211.884 56.25 x +b 227.99 37.5 m 229.555 56.25 x +b 209.909 37.5 m 227.99 37.5 x +b 211.884 56.25 m 229.555 56.25 x +b 227.99 37.5 m 229.555 56.25 x +b 246.01 37.5 m 247.161 56.25 x +b 227.99 37.5 m 246.01 37.5 x +b 229.555 56.25 m 247.161 56.25 x +b 246.01 37.5 m 247.161 56.25 x +b 264.007 37.5 m 264.76 56.25 x +b 246.01 37.5 m 264.007 37.5 x +b 247.161 56.25 m 264.76 56.25 x +b 264.007 37.5 m 264.76 56.25 x +b 282.002 37.5 m 282.374 56.25 x +b 264.007 37.5 m 282.002 37.5 x +b 264.76 56.25 m 282.374 56.25 x +b 282.002 37.5 m 282.374 56.25 x +b 300 37.5 m 300 56.25 x +b 282.002 37.5 m 300 37.5 x +b 282.374 56.25 m 300 56.25 x +b 1.27365e-11 56.25 m 1.27098e-11 75 x +b 19.8735 56.25 m 20.229 75 x +b 1.27365e-11 56.25 m 19.8735 56.25 x +b 1.27098e-11 75 m 20.229 75 x +b 19.8735 56.25 m 20.229 75 x +b 39.7596 56.25 m 40.49 75 x +b 19.8735 56.25 m 39.7596 56.25 x +b 20.229 75 m 40.49 75 x +b 39.7596 56.25 m 40.49 75 x +b 59.6605 56.25 m 60.8048 75 x +b 39.7596 56.25 m 59.6605 56.25 x +b 40.49 75 m 60.8048 75 x +b 59.6605 56.25 m 60.8048 75 x +b 79.5548 56.25 m 81.168 75 x +b 59.6605 56.25 m 79.5548 56.25 x +b 60.8048 75 m 81.168 75 x +b 79.5548 56.25 m 81.168 75 x +b 99.384 56.25 m 101.512 75 x +b 79.5548 56.25 m 99.384 56.25 x +b 81.168 75 m 101.512 75 x +b 99.384 56.25 m 101.512 75 x +b 119.047 56.25 m 121.682 75 x +b 99.384 56.25 m 119.047 56.25 x +b 101.512 75 m 121.682 75 x +b 119.047 56.25 m 121.682 75 x +b 138.419 56.25 m 141.438 75 x +b 119.047 56.25 m 138.419 56.25 x +b 121.682 75 m 141.438 75 x +b 138.419 56.25 m 141.438 75 x +b 157.39 56.25 m 160.556 75 x +b 138.419 56.25 m 157.39 56.25 x +b 141.438 75 m 160.556 75 x +b 157.39 56.25 m 160.556 75 x +b 175.919 56.25 m 178.938 75 x +b 157.39 56.25 m 175.919 56.25 x +b 160.556 75 m 178.938 75 x +b 175.919 56.25 m 178.938 75 x +b 194.047 56.25 m 196.682 75 x +b 175.919 56.25 m 194.047 56.25 x +b 178.938 75 m 196.682 75 x +b 194.047 56.25 m 196.682 75 x +b 211.884 56.25 m 214.012 75 x +b 194.047 56.25 m 211.884 56.25 x +b 196.682 75 m 214.012 75 x +b 211.884 56.25 m 214.012 75 x +b 229.555 56.25 m 231.168 75 x +b 211.884 56.25 m 229.555 56.25 x +b 214.012 75 m 231.168 75 x +b 229.555 56.25 m 231.168 75 x +b 247.161 56.25 m 248.305 75 x +b 229.555 56.25 m 247.161 56.25 x +b 231.168 75 m 248.305 75 x +b 247.161 56.25 m 248.305 75 x +b 264.76 56.25 m 265.49 75 x +b 247.161 56.25 m 264.76 56.25 x +b 248.305 75 m 265.49 75 x +b 264.76 56.25 m 265.49 75 x +b 282.374 56.25 m 282.729 75 x +b 264.76 56.25 m 282.374 56.25 x +b 265.49 75 m 282.729 75 x +b 282.374 56.25 m 282.729 75 x +b 300 56.25 m 300 75 x +b 282.374 56.25 m 300 56.25 x +b 282.729 75 m 300 75 x +b 1.27098e-11 75 m 1.27098e-11 93.75 x +b 20.229 75 m 20.5495 93.75 x +b 1.27098e-11 75 m 20.229 75 x +b 1.27098e-11 93.75 m 20.5495 93.75 x +b 20.229 75 m 20.5495 93.75 x +b 40.49 75 m 41.159 93.75 x +b 20.229 75 m 40.49 75 x +b 20.5495 93.75 m 41.159 93.75 x +b 40.49 75 m 41.159 93.75 x +b 60.8048 75 m 61.884 93.75 x +b 40.49 75 m 60.8048 75 x +b 41.159 93.75 m 61.884 93.75 x +b 60.8048 75 m 61.884 93.75 x +b 81.168 75 m 82.7625 93.75 x +b 60.8048 75 m 81.168 75 x +b 61.884 93.75 m 82.7625 93.75 x +b 81.168 75 m 82.7625 93.75 x +b 101.512 75 m 103.781 93.75 x +b 81.168 75 m 101.512 75 x +b 82.7625 93.75 m 103.781 93.75 x +b 101.512 75 m 103.781 93.75 x +b 121.682 75 m 124.72 93.75 x +b 101.512 75 m 121.682 75 x +b 103.781 93.75 m 124.72 93.75 x +b 121.682 75 m 124.72 93.75 x +b 141.438 75 m 145.155 93.75 x +b 121.682 75 m 141.438 75 x +b 124.72 93.75 m 145.155 93.75 x +b 141.438 75 m 145.155 93.75 x +b 160.556 75 m 164.534 93.75 x +b 141.438 75 m 160.556 75 x +b 145.155 93.75 m 164.534 93.75 x +b 160.556 75 m 164.534 93.75 x +b 178.938 75 m 182.655 93.75 x +b 160.556 75 m 178.938 75 x +b 164.534 93.75 m 182.655 93.75 x +b 178.938 75 m 182.655 93.75 x +b 196.682 75 m 199.72 93.75 x +b 178.938 75 m 196.682 75 x +b 182.655 93.75 m 199.72 93.75 x +b 196.682 75 m 199.72 93.75 x +b 214.012 75 m 216.281 93.75 x +b 196.682 75 m 214.012 75 x +b 199.72 93.75 m 216.281 93.75 x +b 214.012 75 m 216.281 93.75 x +b 231.168 75 m 232.762 93.75 x +b 214.012 75 m 231.168 75 x +b 216.281 93.75 m 232.762 93.75 x +b 231.168 75 m 232.762 93.75 x +b 248.305 75 m 249.384 93.75 x +b 231.168 75 m 248.305 75 x +b 232.762 93.75 m 249.384 93.75 x +b 248.305 75 m 249.384 93.75 x +b 265.49 75 m 266.159 93.75 x +b 248.305 75 m 265.49 75 x +b 249.384 93.75 m 266.159 93.75 x +b 265.49 75 m 266.159 93.75 x +b 282.729 75 m 283.049 93.75 x +b 265.49 75 m 282.729 75 x +b 266.159 93.75 m 283.049 93.75 x +b 282.729 75 m 283.049 93.75 x +b 300 75 m 300 93.75 x +b 282.729 75 m 300 75 x +b 283.049 93.75 m 300 93.75 x +b 1.27098e-11 93.75 m 1.27098e-11 112.5 x +b 20.5495 93.75 m 20.8088 112.5 x +b 1.27098e-11 93.75 m 20.5495 93.75 x +b 1.27098e-11 112.5 m 20.8088 112.5 x +b 20.5495 93.75 m 20.8088 112.5 x +b 41.159 93.75 m 41.7088 112.5 x +b 20.5495 93.75 m 41.159 93.75 x +b 20.8088 112.5 m 41.7088 112.5 x +b 41.159 93.75 m 41.7088 112.5 x +b 61.884 93.75 m 62.7971 112.5 x +b 41.159 93.75 m 61.884 93.75 x +b 41.7088 112.5 m 62.7971 112.5 x +b 61.884 93.75 m 62.7971 112.5 x +b 82.7625 93.75 m 84.182 112.5 x +b 61.884 93.75 m 82.7625 93.75 x +b 62.7971 112.5 m 84.182 112.5 x +b 82.7625 93.75 m 84.182 112.5 x +b 103.781 93.75 m 105.97 112.5 x +b 82.7625 93.75 m 103.781 93.75 x +b 84.182 112.5 m 105.97 112.5 x +b 103.781 93.75 m 105.97 112.5 x +b 124.72 93.75 m 128.249 112.5 x +b 103.781 93.75 m 124.72 93.75 x +b 105.97 112.5 m 128.249 112.5 x +b 124.72 93.75 m 128.249 112.5 x +b 145.155 93.75 m 149.977 112.5 x +b 124.72 93.75 m 145.155 93.75 x +b 128.249 112.5 m 149.977 112.5 x +b 145.155 93.75 m 149.977 112.5 x +b 164.534 93.75 m 170.081 112.5 x +b 145.155 93.75 m 164.534 93.75 x +b 149.977 112.5 m 170.081 112.5 x +b 164.534 93.75 m 170.081 112.5 x +b 182.655 93.75 m 187.477 112.5 x +b 164.534 93.75 m 182.655 93.75 x +b 170.081 112.5 m 187.477 112.5 x +b 182.655 93.75 m 187.477 112.5 x +b 199.72 93.75 m 203.249 112.5 x +b 182.655 93.75 m 199.72 93.75 x +b 187.477 112.5 m 203.249 112.5 x +b 199.72 93.75 m 203.249 112.5 x +b 216.281 93.75 m 218.47 112.5 x +b 199.72 93.75 m 216.281 93.75 x +b 203.249 112.5 m 218.47 112.5 x +b 216.281 93.75 m 218.47 112.5 x +b 232.762 93.75 m 234.182 112.5 x +b 216.281 93.75 m 232.762 93.75 x +b 218.47 112.5 m 234.182 112.5 x +b 232.762 93.75 m 234.182 112.5 x +b 249.384 93.75 m 250.297 112.5 x +b 232.762 93.75 m 249.384 93.75 x +b 234.182 112.5 m 250.297 112.5 x +b 249.384 93.75 m 250.297 112.5 x +b 266.159 93.75 m 266.709 112.5 x +b 249.384 93.75 m 266.159 93.75 x +b 250.297 112.5 m 266.709 112.5 x +b 266.159 93.75 m 266.709 112.5 x +b 283.049 93.75 m 283.309 112.5 x +b 266.159 93.75 m 283.049 93.75 x +b 266.709 112.5 m 283.309 112.5 x +b 283.049 93.75 m 283.309 112.5 x +b 300 93.75 m 300 112.5 x +b 283.049 93.75 m 300 93.75 x +b 283.309 112.5 m 300 112.5 x +b 1.27098e-11 112.5 m 1.27098e-11 131.25 x +b 20.8088 112.5 m 20.9792 131.25 x +b 1.27098e-11 112.5 m 20.8088 112.5 x +b 1.27098e-11 131.25 m 20.9792 131.25 x +b 20.8088 112.5 m 20.9792 131.25 x +b 41.7088 112.5 m 42.0743 131.25 x +b 20.8088 112.5 m 41.7088 112.5 x +b 20.9792 131.25 m 42.0743 131.25 x +b 41.7088 112.5 m 42.0743 131.25 x +b 62.7971 112.5 m 63.4186 131.25 x +b 41.7088 112.5 m 62.7971 112.5 x +b 42.0743 131.25 m 63.4186 131.25 x +b 62.7971 112.5 m 63.4186 131.25 x +b 84.182 112.5 m 85.1879 131.25 x +b 62.7971 112.5 m 84.182 112.5 x +b 63.4186 131.25 m 85.1879 131.25 x +b 84.182 112.5 m 85.1879 131.25 x +b 105.97 112.5 m 107.655 131.25 x +b 84.182 112.5 m 105.97 112.5 x +b 85.1879 131.25 m 107.655 131.25 x +b 105.97 112.5 m 107.655 131.25 x +b 128.249 112.5 m 131.227 131.25 x +b 105.97 112.5 m 128.249 112.5 x +b 107.655 131.25 m 131.227 131.25 x +b 128.249 112.5 m 131.227 131.25 x +b 149.977 112.5 m 157.506 131.25 x +b 128.249 112.5 m 149.977 112.5 x +b 131.227 131.25 m 157.506 131.25 x +b 149.977 112.5 m 157.506 131.25 x +b 170.081 112.5 m 178.341 131.25 x +b 149.977 112.5 m 170.081 112.5 x +b 157.506 131.25 m 178.341 131.25 x +b 170.081 112.5 m 178.341 131.25 x +b 187.477 112.5 m 195.006 131.25 x +b 170.081 112.5 m 187.477 112.5 x +b 178.341 131.25 m 195.006 131.25 x +b 187.477 112.5 m 195.006 131.25 x +b 203.249 112.5 m 206.227 131.25 x +b 187.477 112.5 m 203.249 112.5 x +b 195.006 131.25 m 206.227 131.25 x +b 203.249 112.5 m 206.227 131.25 x +b 218.47 112.5 m 220.155 131.25 x +b 203.249 112.5 m 218.47 112.5 x +b 206.227 131.25 m 220.155 131.25 x +b 218.47 112.5 m 220.155 131.25 x +b 234.182 112.5 m 235.188 131.25 x +b 218.47 112.5 m 234.182 112.5 x +b 220.155 131.25 m 235.188 131.25 x +b 234.182 112.5 m 235.188 131.25 x +b 250.297 112.5 m 250.919 131.25 x +b 234.182 112.5 m 250.297 112.5 x +b 235.188 131.25 m 250.919 131.25 x +b 250.297 112.5 m 250.919 131.25 x +b 266.709 112.5 m 267.074 131.25 x +b 250.297 112.5 m 266.709 112.5 x +b 250.919 131.25 m 267.074 131.25 x +b 266.709 112.5 m 267.074 131.25 x +b 283.309 112.5 m 283.479 131.25 x +b 266.709 112.5 m 283.309 112.5 x +b 267.074 131.25 m 283.479 131.25 x +b 283.309 112.5 m 283.479 131.25 x +b 300 112.5 m 300 131.25 x +b 283.309 112.5 m 300 112.5 x +b 283.479 131.25 m 300 131.25 x +b 1.27098e-11 131.25 m 1.27098e-11 150 x +b 20.9792 131.25 m 21.0387 150 x +b 1.27098e-11 131.25 m 20.9792 131.25 x +b 1.27098e-11 150 m 21.0387 150 x +b 20.9792 131.25 m 21.0387 150 x +b 42.0743 131.25 m 42.2029 150 x +b 20.9792 131.25 m 42.0743 131.25 x +b 21.0387 150 m 42.2029 150 x +b 42.0743 131.25 m 42.2029 150 x +b 63.4186 131.25 m 63.64 150 x +b 42.0743 131.25 m 63.4186 131.25 x +b 42.2029 150 m 63.64 150 x +b 63.4186 131.25 m 63.64 150 x +b 85.1879 131.25 m 85.5558 150 x +b 63.4186 131.25 m 85.1879 131.25 x +b 63.64 150 m 85.5558 150 x +b 85.1879 131.25 m 85.5558 150 x +b 107.655 131.25 m 108.284 150 x +b 85.1879 131.25 m 107.655 131.25 x +b 85.5558 150 m 108.284 150 x +b 107.655 131.25 m 108.284 150 x +b 131.227 131.25 m 132.581 150 x +b 107.655 131.25 m 131.227 131.25 x +b 108.284 150 m 132.581 150 x +b 131.227 131.25 m 132.581 150 x +b 157.506 131.25 m 159.591 150 x +b 131.227 131.25 m 157.506 131.25 x +b 132.581 150 m 159.591 150 x +b 157.506 131.25 m 159.591 150 x +b 178.341 131.25 m 210 150 x +b 157.506 131.25 m 178.341 131.25 x +b 159.591 150 m 210 150 x +b 178.341 131.25 m 210 150 x +b 195.006 131.25 m 197.091 150 x +b 178.341 131.25 m 195.006 131.25 x +b 210 150 m 197.091 150 x +b 195.006 131.25 m 197.091 150 x +b 206.227 131.25 m 207.581 150 x +b 195.006 131.25 m 206.227 131.25 x +b 197.091 150 m 207.581 150 x +b 206.227 131.25 m 207.581 150 x +b 220.155 131.25 m 220.784 150 x +b 206.227 131.25 m 220.155 131.25 x +b 207.581 150 m 220.784 150 x +b 220.155 131.25 m 220.784 150 x +b 235.188 131.25 m 235.556 150 x +b 220.155 131.25 m 235.188 131.25 x +b 220.784 150 m 235.556 150 x +b 235.188 131.25 m 235.556 150 x +b 250.919 131.25 m 251.14 150 x +b 235.188 131.25 m 250.919 131.25 x +b 235.556 150 m 251.14 150 x +b 250.919 131.25 m 251.14 150 x +b 267.074 131.25 m 267.203 150 x +b 250.919 131.25 m 267.074 131.25 x +b 251.14 150 m 267.203 150 x +b 267.074 131.25 m 267.203 150 x +b 283.479 131.25 m 283.539 150 x +b 267.074 131.25 m 283.479 131.25 x +b 267.203 150 m 283.539 150 x +b 283.479 131.25 m 283.539 150 x +b 300 131.25 m 300 150 x +b 283.479 131.25 m 300 131.25 x +b 283.539 150 m 300 150 x +b 1.27098e-11 150 m 1.27098e-11 168.75 x +b 21.0387 150 m 20.9792 168.75 x +b 1.27098e-11 150 m 21.0387 150 x +b 1.27098e-11 168.75 m 20.9792 168.75 x +b 21.0387 150 m 20.9792 168.75 x +b 42.2029 150 m 42.0743 168.75 x +b 21.0387 150 m 42.2029 150 x +b 20.9792 168.75 m 42.0743 168.75 x +b 42.2029 150 m 42.0743 168.75 x +b 63.64 150 m 63.4186 168.75 x +b 42.2029 150 m 63.64 150 x +b 42.0743 168.75 m 63.4186 168.75 x +b 63.64 150 m 63.4186 168.75 x +b 85.5558 150 m 85.1879 168.75 x +b 63.64 150 m 85.5558 150 x +b 63.4186 168.75 m 85.1879 168.75 x +b 85.5558 150 m 85.1879 168.75 x +b 108.284 150 m 107.655 168.75 x +b 85.5558 150 m 108.284 150 x +b 85.1879 168.75 m 107.655 168.75 x +b 108.284 150 m 107.655 168.75 x +b 132.581 150 m 131.227 168.75 x +b 108.284 150 m 132.581 150 x +b 107.655 168.75 m 131.227 168.75 x +b 132.581 150 m 131.227 168.75 x +b 159.591 150 m 157.506 168.75 x +b 132.581 150 m 159.591 150 x +b 131.227 168.75 m 157.506 168.75 x +b 159.591 150 m 157.506 168.75 x +b 210 150 m 178.341 168.75 x +b 159.591 150 m 210 150 x +b 157.506 168.75 m 178.341 168.75 x +b 210 150 m 178.341 168.75 x +b 197.091 150 m 195.006 168.75 x +b 210 150 m 197.091 150 x +b 178.341 168.75 m 195.006 168.75 x +b 197.091 150 m 195.006 168.75 x +b 207.581 150 m 206.227 168.75 x +b 197.091 150 m 207.581 150 x +b 195.006 168.75 m 206.227 168.75 x +b 207.581 150 m 206.227 168.75 x +b 220.784 150 m 220.155 168.75 x +b 207.581 150 m 220.784 150 x +b 206.227 168.75 m 220.155 168.75 x +b 220.784 150 m 220.155 168.75 x +b 235.556 150 m 235.188 168.75 x +b 220.784 150 m 235.556 150 x +b 220.155 168.75 m 235.188 168.75 x +b 235.556 150 m 235.188 168.75 x +b 251.14 150 m 250.919 168.75 x +b 235.556 150 m 251.14 150 x +b 235.188 168.75 m 250.919 168.75 x +b 251.14 150 m 250.919 168.75 x +b 267.203 150 m 267.074 168.75 x +b 251.14 150 m 267.203 150 x +b 250.919 168.75 m 267.074 168.75 x +b 267.203 150 m 267.074 168.75 x +b 283.539 150 m 283.479 168.75 x +b 267.203 150 m 283.539 150 x +b 267.074 168.75 m 283.479 168.75 x +b 283.539 150 m 283.479 168.75 x +b 300 150 m 300 168.75 x +b 283.539 150 m 300 150 x +b 283.479 168.75 m 300 168.75 x +b 1.27098e-11 168.75 m 1.27365e-11 187.5 x +b 20.9792 168.75 m 20.8088 187.5 x +b 1.27098e-11 168.75 m 20.9792 168.75 x +b 1.27365e-11 187.5 m 20.8088 187.5 x +b 20.9792 168.75 m 20.8088 187.5 x +b 42.0743 168.75 m 41.7088 187.5 x +b 20.9792 168.75 m 42.0743 168.75 x +b 20.8088 187.5 m 41.7088 187.5 x +b 42.0743 168.75 m 41.7088 187.5 x +b 63.4186 168.75 m 62.7971 187.5 x +b 42.0743 168.75 m 63.4186 168.75 x +b 41.7088 187.5 m 62.7971 187.5 x +b 63.4186 168.75 m 62.7971 187.5 x +b 85.1879 168.75 m 84.182 187.5 x +b 63.4186 168.75 m 85.1879 168.75 x +b 62.7971 187.5 m 84.182 187.5 x +b 85.1879 168.75 m 84.182 187.5 x +b 107.655 168.75 m 105.97 187.5 x +b 85.1879 168.75 m 107.655 168.75 x +b 84.182 187.5 m 105.97 187.5 x +b 107.655 168.75 m 105.97 187.5 x +b 131.227 168.75 m 128.249 187.5 x +b 107.655 168.75 m 131.227 168.75 x +b 105.97 187.5 m 128.249 187.5 x +b 131.227 168.75 m 128.249 187.5 x +b 157.506 168.75 m 149.977 187.5 x +b 131.227 168.75 m 157.506 168.75 x +b 128.249 187.5 m 149.977 187.5 x +b 157.506 168.75 m 149.977 187.5 x +b 178.341 168.75 m 170.081 187.5 x +b 157.506 168.75 m 178.341 168.75 x +b 149.977 187.5 m 170.081 187.5 x +b 178.341 168.75 m 170.081 187.5 x +b 195.006 168.75 m 187.477 187.5 x +b 178.341 168.75 m 195.006 168.75 x +b 170.081 187.5 m 187.477 187.5 x +b 195.006 168.75 m 187.477 187.5 x +b 206.227 168.75 m 203.249 187.5 x +b 195.006 168.75 m 206.227 168.75 x +b 187.477 187.5 m 203.249 187.5 x +b 206.227 168.75 m 203.249 187.5 x +b 220.155 168.75 m 218.47 187.5 x +b 206.227 168.75 m 220.155 168.75 x +b 203.249 187.5 m 218.47 187.5 x +b 220.155 168.75 m 218.47 187.5 x +b 235.188 168.75 m 234.182 187.5 x +b 220.155 168.75 m 235.188 168.75 x +b 218.47 187.5 m 234.182 187.5 x +b 235.188 168.75 m 234.182 187.5 x +b 250.919 168.75 m 250.297 187.5 x +b 235.188 168.75 m 250.919 168.75 x +b 234.182 187.5 m 250.297 187.5 x +b 250.919 168.75 m 250.297 187.5 x +b 267.074 168.75 m 266.709 187.5 x +b 250.919 168.75 m 267.074 168.75 x +b 250.297 187.5 m 266.709 187.5 x +b 267.074 168.75 m 266.709 187.5 x +b 283.479 168.75 m 283.309 187.5 x +b 267.074 168.75 m 283.479 168.75 x +b 266.709 187.5 m 283.309 187.5 x +b 283.479 168.75 m 283.309 187.5 x +b 300 168.75 m 300 187.5 x +b 283.479 168.75 m 300 168.75 x +b 283.309 187.5 m 300 187.5 x +b 1.27365e-11 187.5 m 1.27098e-11 206.25 x +b 20.8088 187.5 m 20.5495 206.25 x +b 1.27365e-11 187.5 m 20.8088 187.5 x +b 1.27098e-11 206.25 m 20.5495 206.25 x +b 20.8088 187.5 m 20.5495 206.25 x +b 41.7088 187.5 m 41.159 206.25 x +b 20.8088 187.5 m 41.7088 187.5 x +b 20.5495 206.25 m 41.159 206.25 x +b 41.7088 187.5 m 41.159 206.25 x +b 62.7971 187.5 m 61.884 206.25 x +b 41.7088 187.5 m 62.7971 187.5 x +b 41.159 206.25 m 61.884 206.25 x +b 62.7971 187.5 m 61.884 206.25 x +b 84.182 187.5 m 82.7625 206.25 x +b 62.7971 187.5 m 84.182 187.5 x +b 61.884 206.25 m 82.7625 206.25 x +b 84.182 187.5 m 82.7625 206.25 x +b 105.97 187.5 m 103.781 206.25 x +b 84.182 187.5 m 105.97 187.5 x +b 82.7625 206.25 m 103.781 206.25 x +b 105.97 187.5 m 103.781 206.25 x +b 128.249 187.5 m 124.72 206.25 x +b 105.97 187.5 m 128.249 187.5 x +b 103.781 206.25 m 124.72 206.25 x +b 128.249 187.5 m 124.72 206.25 x +b 149.977 187.5 m 145.155 206.25 x +b 128.249 187.5 m 149.977 187.5 x +b 124.72 206.25 m 145.155 206.25 x +b 149.977 187.5 m 145.155 206.25 x +b 170.081 187.5 m 164.534 206.25 x +b 149.977 187.5 m 170.081 187.5 x +b 145.155 206.25 m 164.534 206.25 x +b 170.081 187.5 m 164.534 206.25 x +b 187.477 187.5 m 182.655 206.25 x +b 170.081 187.5 m 187.477 187.5 x +b 164.534 206.25 m 182.655 206.25 x +b 187.477 187.5 m 182.655 206.25 x +b 203.249 187.5 m 199.72 206.25 x +b 187.477 187.5 m 203.249 187.5 x +b 182.655 206.25 m 199.72 206.25 x +b 203.249 187.5 m 199.72 206.25 x +b 218.47 187.5 m 216.281 206.25 x +b 203.249 187.5 m 218.47 187.5 x +b 199.72 206.25 m 216.281 206.25 x +b 218.47 187.5 m 216.281 206.25 x +b 234.182 187.5 m 232.762 206.25 x +b 218.47 187.5 m 234.182 187.5 x +b 216.281 206.25 m 232.762 206.25 x +b 234.182 187.5 m 232.762 206.25 x +b 250.297 187.5 m 249.384 206.25 x +b 234.182 187.5 m 250.297 187.5 x +b 232.762 206.25 m 249.384 206.25 x +b 250.297 187.5 m 249.384 206.25 x +b 266.709 187.5 m 266.159 206.25 x +b 250.297 187.5 m 266.709 187.5 x +b 249.384 206.25 m 266.159 206.25 x +b 266.709 187.5 m 266.159 206.25 x +b 283.309 187.5 m 283.049 206.25 x +b 266.709 187.5 m 283.309 187.5 x +b 266.159 206.25 m 283.049 206.25 x +b 283.309 187.5 m 283.049 206.25 x +b 300 187.5 m 300 206.25 x +b 283.309 187.5 m 300 187.5 x +b 283.049 206.25 m 300 206.25 x +b 1.27098e-11 206.25 m 1.27365e-11 225 x +b 20.5495 206.25 m 20.229 225 x +b 1.27098e-11 206.25 m 20.5495 206.25 x +b 1.27365e-11 225 m 20.229 225 x +b 20.5495 206.25 m 20.229 225 x +b 41.159 206.25 m 40.49 225 x +b 20.5495 206.25 m 41.159 206.25 x +b 20.229 225 m 40.49 225 x +b 41.159 206.25 m 40.49 225 x +b 61.884 206.25 m 60.8048 225 x +b 41.159 206.25 m 61.884 206.25 x +b 40.49 225 m 60.8048 225 x +b 61.884 206.25 m 60.8048 225 x +b 82.7625 206.25 m 81.168 225 x +b 61.884 206.25 m 82.7625 206.25 x +b 60.8048 225 m 81.168 225 x +b 82.7625 206.25 m 81.168 225 x +b 103.781 206.25 m 101.512 225 x +b 82.7625 206.25 m 103.781 206.25 x +b 81.168 225 m 101.512 225 x +b 103.781 206.25 m 101.512 225 x +b 124.72 206.25 m 121.682 225 x +b 103.781 206.25 m 124.72 206.25 x +b 101.512 225 m 121.682 225 x +b 124.72 206.25 m 121.682 225 x +b 145.155 206.25 m 141.438 225 x +b 124.72 206.25 m 145.155 206.25 x +b 121.682 225 m 141.438 225 x +b 145.155 206.25 m 141.438 225 x +b 164.534 206.25 m 160.556 225 x +b 145.155 206.25 m 164.534 206.25 x +b 141.438 225 m 160.556 225 x +b 164.534 206.25 m 160.556 225 x +b 182.655 206.25 m 178.938 225 x +b 164.534 206.25 m 182.655 206.25 x +b 160.556 225 m 178.938 225 x +b 182.655 206.25 m 178.938 225 x +b 199.72 206.25 m 196.682 225 x +b 182.655 206.25 m 199.72 206.25 x +b 178.938 225 m 196.682 225 x +b 199.72 206.25 m 196.682 225 x +b 216.281 206.25 m 214.012 225 x +b 199.72 206.25 m 216.281 206.25 x +b 196.682 225 m 214.012 225 x +b 216.281 206.25 m 214.012 225 x +b 232.762 206.25 m 231.168 225 x +b 216.281 206.25 m 232.762 206.25 x +b 214.012 225 m 231.168 225 x +b 232.762 206.25 m 231.168 225 x +b 249.384 206.25 m 248.305 225 x +b 232.762 206.25 m 249.384 206.25 x +b 231.168 225 m 248.305 225 x +b 249.384 206.25 m 248.305 225 x +b 266.159 206.25 m 265.49 225 x +b 249.384 206.25 m 266.159 206.25 x +b 248.305 225 m 265.49 225 x +b 266.159 206.25 m 265.49 225 x +b 283.049 206.25 m 282.729 225 x +b 266.159 206.25 m 283.049 206.25 x +b 265.49 225 m 282.729 225 x +b 283.049 206.25 m 282.729 225 x +b 300 206.25 m 300 225 x +b 283.049 206.25 m 300 206.25 x +b 282.729 225 m 300 225 x +b 1.27365e-11 225 m 1.27098e-11 243.75 x +b 20.229 225 m 19.8735 243.75 x +b 1.27365e-11 225 m 20.229 225 x +b 1.27098e-11 243.75 m 19.8735 243.75 x +b 20.229 225 m 19.8735 243.75 x +b 40.49 225 m 39.7596 243.75 x +b 20.229 225 m 40.49 225 x +b 19.8735 243.75 m 39.7596 243.75 x +b 40.49 225 m 39.7596 243.75 x +b 60.8048 225 m 59.6605 243.75 x +b 40.49 225 m 60.8048 225 x +b 39.7596 243.75 m 59.6605 243.75 x +b 60.8048 225 m 59.6605 243.75 x +b 81.168 225 m 79.5548 243.75 x +b 60.8048 225 m 81.168 225 x +b 59.6605 243.75 m 79.5548 243.75 x +b 81.168 225 m 79.5548 243.75 x +b 101.512 225 m 99.384 243.75 x +b 81.168 225 m 101.512 225 x +b 79.5548 243.75 m 99.384 243.75 x +b 101.512 225 m 99.384 243.75 x +b 121.682 225 m 119.047 243.75 x +b 101.512 225 m 121.682 225 x +b 99.384 243.75 m 119.047 243.75 x +b 121.682 225 m 119.047 243.75 x +b 141.438 225 m 138.419 243.75 x +b 121.682 225 m 141.438 225 x +b 119.047 243.75 m 138.419 243.75 x +b 141.438 225 m 138.419 243.75 x +b 160.556 225 m 157.39 243.75 x +b 141.438 225 m 160.556 225 x +b 138.419 243.75 m 157.39 243.75 x +b 160.556 225 m 157.39 243.75 x +b 178.938 225 m 175.919 243.75 x +b 160.556 225 m 178.938 225 x +b 157.39 243.75 m 175.919 243.75 x +b 178.938 225 m 175.919 243.75 x +b 196.682 225 m 194.047 243.75 x +b 178.938 225 m 196.682 225 x +b 175.919 243.75 m 194.047 243.75 x +b 196.682 225 m 194.047 243.75 x +b 214.012 225 m 211.884 243.75 x +b 196.682 225 m 214.012 225 x +b 194.047 243.75 m 211.884 243.75 x +b 214.012 225 m 211.884 243.75 x +b 231.168 225 m 229.555 243.75 x +b 214.012 225 m 231.168 225 x +b 211.884 243.75 m 229.555 243.75 x +b 231.168 225 m 229.555 243.75 x +b 248.305 225 m 247.161 243.75 x +b 231.168 225 m 248.305 225 x +b 229.555 243.75 m 247.161 243.75 x +b 248.305 225 m 247.161 243.75 x +b 265.49 225 m 264.76 243.75 x +b 248.305 225 m 265.49 225 x +b 247.161 243.75 m 264.76 243.75 x +b 265.49 225 m 264.76 243.75 x +b 282.729 225 m 282.374 243.75 x +b 265.49 225 m 282.729 225 x +b 264.76 243.75 m 282.374 243.75 x +b 282.729 225 m 282.374 243.75 x +b 300 225 m 300 243.75 x +b 282.729 225 m 300 225 x +b 282.374 243.75 m 300 243.75 x +b 1.27098e-11 243.75 m 1.27098e-11 262.5 x +b 19.8735 243.75 m 19.5024 262.5 x +b 1.27098e-11 243.75 m 19.8735 243.75 x +b 1.27098e-11 262.5 m 19.5024 262.5 x +b 19.8735 243.75 m 19.5024 262.5 x +b 39.7596 243.75 m 39.0073 262.5 x +b 19.8735 243.75 m 39.7596 243.75 x +b 19.5024 262.5 m 39.0073 262.5 x +b 39.7596 243.75 m 39.0073 262.5 x +b 59.6605 243.75 m 58.5096 262.5 x +b 39.7596 243.75 m 59.6605 243.75 x +b 39.0073 262.5 m 58.5096 262.5 x +b 59.6605 243.75 m 58.5096 262.5 x +b 79.5548 243.75 m 77.99 262.5 x +b 59.6605 243.75 m 79.5548 243.75 x +b 58.5096 262.5 m 77.99 262.5 x +b 79.5548 243.75 m 77.99 262.5 x +b 99.384 243.75 m 97.409 262.5 x +b 79.5548 243.75 m 99.384 243.75 x +b 77.99 262.5 m 97.409 262.5 x +b 99.384 243.75 m 97.409 262.5 x +b 119.047 243.75 m 116.709 262.5 x +b 99.384 243.75 m 119.047 243.75 x +b 97.409 262.5 m 116.709 262.5 x +b 119.047 243.75 m 116.709 262.5 x +b 138.419 243.75 m 135.824 262.5 x +b 119.047 243.75 m 138.419 243.75 x +b 116.709 262.5 m 135.824 262.5 x +b 138.419 243.75 m 135.824 262.5 x +b 157.39 243.75 m 154.703 262.5 x +b 138.419 243.75 m 157.39 243.75 x +b 135.824 262.5 m 154.703 262.5 x +b 157.39 243.75 m 154.703 262.5 x +b 175.919 243.75 m 173.324 262.5 x +b 157.39 243.75 m 175.919 243.75 x +b 154.703 262.5 m 173.324 262.5 x +b 175.919 243.75 m 173.324 262.5 x +b 194.047 243.75 m 191.709 262.5 x +b 175.919 243.75 m 194.047 243.75 x +b 173.324 262.5 m 191.709 262.5 x +b 194.047 243.75 m 191.709 262.5 x +b 211.884 243.75 m 209.909 262.5 x +b 194.047 243.75 m 211.884 243.75 x +b 191.709 262.5 m 209.909 262.5 x +b 211.884 243.75 m 209.909 262.5 x +b 229.555 243.75 m 227.99 262.5 x +b 211.884 243.75 m 229.555 243.75 x +b 209.909 262.5 m 227.99 262.5 x +b 229.555 243.75 m 227.99 262.5 x +b 247.161 243.75 m 246.01 262.5 x +b 229.555 243.75 m 247.161 243.75 x +b 227.99 262.5 m 246.01 262.5 x +b 247.161 243.75 m 246.01 262.5 x +b 264.76 243.75 m 264.007 262.5 x +b 247.161 243.75 m 264.76 243.75 x +b 246.01 262.5 m 264.007 262.5 x +b 264.76 243.75 m 264.007 262.5 x +b 282.374 243.75 m 282.002 262.5 x +b 264.76 243.75 m 282.374 243.75 x +b 264.007 262.5 m 282.002 262.5 x +b 282.374 243.75 m 282.002 262.5 x +b 300 243.75 m 300 262.5 x +b 282.374 243.75 m 300 243.75 x +b 282.002 262.5 m 300 262.5 x +b 1.27098e-11 262.5 m 1.27631e-11 281.25 x +b 19.5024 262.5 m 19.1265 281.25 x +b 1.27098e-11 262.5 m 19.5024 262.5 x +b 1.27631e-11 281.25 m 19.1265 281.25 x +b 19.5024 262.5 m 19.1265 281.25 x +b 39.0073 262.5 m 38.2524 281.25 x +b 19.5024 262.5 m 39.0073 262.5 x +b 19.1265 281.25 m 38.2524 281.25 x +b 39.0073 262.5 m 38.2524 281.25 x +b 58.5096 262.5 m 57.3735 281.25 x +b 39.0073 262.5 m 58.5096 262.5 x +b 38.2524 281.25 m 57.3735 281.25 x +b 58.5096 262.5 m 57.3735 281.25 x +b 77.99 262.5 m 76.479 281.25 x +b 58.5096 262.5 m 77.99 262.5 x +b 57.3735 281.25 m 76.479 281.25 x +b 77.99 262.5 m 76.479 281.25 x +b 97.409 262.5 m 95.5495 281.25 x +b 77.99 262.5 m 97.409 262.5 x +b 76.479 281.25 m 95.5495 281.25 x +b 97.409 262.5 m 95.5495 281.25 x +b 116.709 262.5 m 114.559 281.25 x +b 97.409 262.5 m 116.709 262.5 x +b 95.5495 281.25 m 114.559 281.25 x +b 116.709 262.5 m 114.559 281.25 x +b 135.824 262.5 m 133.479 281.25 x +b 116.709 262.5 m 135.824 262.5 x +b 114.559 281.25 m 133.479 281.25 x +b 135.824 262.5 m 133.479 281.25 x +b 154.703 262.5 m 152.289 281.25 x +b 135.824 262.5 m 154.703 262.5 x +b 133.479 281.25 m 152.289 281.25 x +b 154.703 262.5 m 152.289 281.25 x +b 173.324 262.5 m 170.979 281.25 x +b 154.703 262.5 m 173.324 262.5 x +b 152.289 281.25 m 170.979 281.25 x +b 173.324 262.5 m 170.979 281.25 x +b 191.709 262.5 m 189.559 281.25 x +b 173.324 262.5 m 191.709 262.5 x +b 170.979 281.25 m 189.559 281.25 x +b 191.709 262.5 m 189.559 281.25 x +b 209.909 262.5 m 208.049 281.25 x +b 191.709 262.5 m 209.909 262.5 x +b 189.559 281.25 m 208.049 281.25 x +b 209.909 262.5 m 208.049 281.25 x +b 227.99 262.5 m 226.479 281.25 x +b 209.909 262.5 m 227.99 262.5 x +b 208.049 281.25 m 226.479 281.25 x +b 227.99 262.5 m 226.479 281.25 x +b 246.01 262.5 m 244.874 281.25 x +b 227.99 262.5 m 246.01 262.5 x +b 226.479 281.25 m 244.874 281.25 x +b 246.01 262.5 m 244.874 281.25 x +b 264.007 262.5 m 263.252 281.25 x +b 246.01 262.5 m 264.007 262.5 x +b 244.874 281.25 m 263.252 281.25 x +b 264.007 262.5 m 263.252 281.25 x +b 282.002 262.5 m 281.627 281.25 x +b 264.007 262.5 m 282.002 262.5 x +b 263.252 281.25 m 281.627 281.25 x +b 282.002 262.5 m 281.627 281.25 x +b 300 262.5 m 300 281.25 x +b 282.002 262.5 m 300 262.5 x +b 281.627 281.25 m 300 281.25 x +b 1.27631e-11 281.25 m 2.66454e-14 300 x +b 19.1265 281.25 m 18.75 300 x +b 1.27631e-11 281.25 m 19.1265 281.25 x +b 2.66454e-14 300 m 18.75 300 x +b 19.1265 281.25 m 18.75 300 x +b 38.2524 281.25 m 37.5 300 x +b 19.1265 281.25 m 38.2524 281.25 x +b 18.75 300 m 37.5 300 x +b 38.2524 281.25 m 37.5 300 x +b 57.3735 281.25 m 56.25 300 x +b 38.2524 281.25 m 57.3735 281.25 x +b 37.5 300 m 56.25 300 x +b 57.3735 281.25 m 56.25 300 x +b 76.479 281.25 m 75 300 x +b 57.3735 281.25 m 76.479 281.25 x +b 56.25 300 m 75 300 x +b 76.479 281.25 m 75 300 x +b 95.5495 281.25 m 93.75 300 x +b 76.479 281.25 m 95.5495 281.25 x +b 75 300 m 93.75 300 x +b 95.5495 281.25 m 93.75 300 x +b 114.559 281.25 m 112.5 300 x +b 95.5495 281.25 m 114.559 281.25 x +b 93.75 300 m 112.5 300 x +b 114.559 281.25 m 112.5 300 x +b 133.479 281.25 m 131.25 300 x +b 114.559 281.25 m 133.479 281.25 x +b 112.5 300 m 131.25 300 x +b 133.479 281.25 m 131.25 300 x +b 152.289 281.25 m 150 300 x +b 133.479 281.25 m 152.289 281.25 x +b 131.25 300 m 150 300 x +b 152.289 281.25 m 150 300 x +b 170.979 281.25 m 168.75 300 x +b 152.289 281.25 m 170.979 281.25 x +b 150 300 m 168.75 300 x +b 170.979 281.25 m 168.75 300 x +b 189.559 281.25 m 187.5 300 x +b 170.979 281.25 m 189.559 281.25 x +b 168.75 300 m 187.5 300 x +b 189.559 281.25 m 187.5 300 x +b 208.049 281.25 m 206.25 300 x +b 189.559 281.25 m 208.049 281.25 x +b 187.5 300 m 206.25 300 x +b 208.049 281.25 m 206.25 300 x +b 226.479 281.25 m 225 300 x +b 208.049 281.25 m 226.479 281.25 x +b 206.25 300 m 225 300 x +b 226.479 281.25 m 225 300 x +b 244.874 281.25 m 243.75 300 x +b 226.479 281.25 m 244.874 281.25 x +b 225 300 m 243.75 300 x +b 244.874 281.25 m 243.75 300 x +b 263.252 281.25 m 262.5 300 x +b 244.874 281.25 m 263.252 281.25 x +b 243.75 300 m 262.5 300 x +b 263.252 281.25 m 262.5 300 x +b 281.627 281.25 m 281.25 300 x +b 263.252 281.25 m 281.627 281.25 x +b 262.5 300 m 281.25 300 x +b 281.627 281.25 m 281.25 300 x +b 300 281.25 m 300 300 x +b 281.627 281.25 m 300 281.25 x +b 281.25 300 m 300 300 x +showpage diff --git a/tests/deal.II/grid_transform_coefficient.cc b/tests/deal.II/grid_transform_coefficient.cc new file mode 100644 index 0000000000..beee2dd480 --- /dev/null +++ b/tests/deal.II/grid_transform_coefficient.cc @@ -0,0 +1,123 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 1998 - 2014 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. +// +// --------------------------------------------------------------------- + +// like grid_transform, but use a spatially variable coefficient + + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +template +class Coefficient : public Function +{ +public: + virtual double value (const Point &p, + const unsigned int) const + { + return (p[0]>0 ? 10 : 1); + } +}; + + +int main () +{ + const unsigned int dim=2; + Point origin; + HyperShellBoundary boundary(origin); + MappingQ mapping(2); + Triangulation tria; + tria.set_boundary(0, boundary); + const double inner_radius=1.; + const double outer_radius=5.; + GridGenerator::hyper_shell(tria, origin, inner_radius, outer_radius, 8); + tria.refine_global(2); + + // build up a map of vertex indices + // of boundary vertices to the new + // boundary points + std::map > new_points; + + // new center and new radius + // of the inner circle. + const Point n_center(0,-1); + const double n_radius=0.5; + + Triangulation::cell_iterator cell=tria.begin_active(), + endc=tria.end(); + Triangulation::face_iterator face; + for (; cell!=endc; ++cell) + { + if (cell->at_boundary()) + for (unsigned int face_no=0; face_no::faces_per_cell; ++face_no) + { + face=cell->face(face_no); + if (face->at_boundary()) + for (unsigned int vertex_no=0; + vertex_no::vertices_per_face; ++vertex_no) + { + const Point &v=face->vertex(vertex_no); + if (std::fabs(std::sqrt(v.square())-outer_radius)<1e-12) + { + // leave the + // point, where + // they are. + new_points.insert(std::pair > ( + face->vertex_index(vertex_no), v)); + } + else if (std::fabs(std::sqrt(v.square())-inner_radius)<1e-12) + { + // move the + // center of + // the inner + // circle to + // (-1,0) and + // take half + // the radius + // of the + // circle. + new_points.insert(std::pair > ( + face->vertex_index(vertex_no), n_radius/inner_radius*v+n_center)); + face->set_boundary_indicator(1); + } + else + Assert(false, ExcInternalError()); + } + } + } + + const Coefficient c; + GridGenerator::laplace_transformation (tria, new_points, &c); + HyperBallBoundary inner_ball(n_center, n_radius); + tria.set_boundary(1, inner_ball); + + GridOut grid_out; + std::ofstream eps_stream2("output"); + grid_out.write_eps(tria, eps_stream2, &mapping); + + tria.clear(); + + return 0; +} diff --git a/tests/deal.II/grid_transform_coefficient.output b/tests/deal.II/grid_transform_coefficient.output new file mode 100644 index 0000000000..74f8f2d6b9 --- /dev/null +++ b/tests/deal.II/grid_transform_coefficient.output @@ -0,0 +1,653 @@ +%!PS-Adobe-2.0 EPSF-1.2 +%%Title: deal.II Output +%%Creator: the deal.II library + +%%BoundingBox: 0 0 301 300 +/m {moveto} bind def +/x {lineto stroke} bind def +/b {0 0 0 setrgbcolor} def +/r {1 0 0 setrgbcolor} def +%%EndProlog + +0.5 setlinewidth +b 300 150 m 269.727 145.754 x +b 297.118 179.264 m 265.518 167.89 x +b 269.727 145.754 m 265.518 167.89 x +b 297.118 179.264 m 265.518 167.89 x +b 288.582 207.403 m 258.81 189.709 x +b 265.518 167.89 m 258.81 189.709 x +b 269.727 145.754 m 238.9 140.339 x +b 265.518 167.89 m 233.152 154.954 x +b 269.727 145.754 m 265.518 167.89 x +b 238.9 140.339 m 233.152 154.954 x +b 265.518 167.89 m 233.152 154.954 x +b 258.81 189.709 m 228.21 170.233 x +b 265.518 167.89 m 258.81 189.709 x +b 233.152 154.954 m 228.21 170.233 x +b 288.582 207.403 m 258.81 189.709 x +b 274.72 233.336 m 249.015 210.274 x +b 258.81 189.709 m 249.015 210.274 x +b 274.72 233.336 m 249.015 210.274 x +b 256.066 256.066 m 237.148 229.58 x +b 249.015 210.274 m 237.148 229.58 x +b 258.81 189.709 m 228.21 170.233 x +b 249.015 210.274 m 222.557 185.384 x +b 258.81 189.709 m 249.015 210.274 x +b 228.21 170.233 m 222.557 185.384 x +b 249.015 210.274 m 222.557 185.384 x +b 237.148 229.58 m 217.611 201.559 x +b 249.015 210.274 m 237.148 229.58 x +b 222.557 185.384 m 217.611 201.559 x +b 238.9 140.339 m 206.034 132.808 x +b 233.152 154.954 m 202.601 141.732 x +b 238.9 140.339 m 233.152 154.954 x +b 206.034 132.808 m 202.601 141.732 x +b 233.152 154.954 m 202.601 141.732 x +b 228.21 170.233 m 199.827 151.101 x +b 233.152 154.954 m 228.21 170.233 x +b 202.601 141.732 m 199.827 151.101 x +b 206.034 132.808 m 165 120 x +b 202.601 141.732 m 164.712 122.926 x +b 206.034 132.808 m 202.601 141.732 x +b 202.601 141.732 m 164.712 122.926 x +b 199.827 151.101 m 163.858 125.74 x +b 202.601 141.732 m 199.827 151.101 x +b 228.21 170.233 m 199.827 151.101 x +b 222.557 185.384 m 196.809 160.42 x +b 228.21 170.233 m 222.557 185.384 x +b 199.827 151.101 m 196.809 160.42 x +b 222.557 185.384 m 196.809 160.42 x +b 217.611 201.559 m 194.714 170.564 x +b 222.557 185.384 m 217.611 201.559 x +b 196.809 160.42 m 194.714 170.564 x +b 199.827 151.101 m 163.858 125.74 x +b 196.809 160.42 m 162.472 128.334 x +b 199.827 151.101 m 196.809 160.42 x +b 196.809 160.42 m 162.472 128.334 x +b 194.714 170.564 m 160.607 130.607 x +b 196.809 160.42 m 194.714 170.564 x +b 256.066 256.066 m 237.148 229.58 x +b 233.336 274.72 m 220.334 242.018 x +b 237.148 229.58 m 220.334 242.018 x +b 233.336 274.72 m 220.334 242.018 x +b 207.403 288.582 m 203.351 252.407 x +b 220.334 242.018 m 203.351 252.407 x +b 237.148 229.58 m 217.611 201.559 x +b 220.334 242.018 m 205.861 207.335 x +b 237.148 229.58 m 220.334 242.018 x +b 217.611 201.559 m 205.861 207.335 x +b 220.334 242.018 m 205.861 207.335 x +b 203.351 252.407 m 196.412 214.078 x +b 220.334 242.018 m 203.351 252.407 x +b 205.861 207.335 m 196.412 214.078 x +b 207.403 288.582 m 203.351 252.407 x +b 179.264 297.118 m 187.875 259.574 x +b 203.351 252.407 m 187.875 259.574 x +b 179.264 297.118 m 187.875 259.574 x +b 150 300 m 179.383 264.302 x +b 187.875 259.574 m 179.383 264.302 x +b 203.351 252.407 m 196.412 214.078 x +b 187.875 259.574 m 189.406 219.94 x +b 203.351 252.407 m 187.875 259.574 x +b 196.412 214.078 m 189.406 219.94 x +b 187.875 259.574 m 189.406 219.94 x +b 179.383 264.302 m 184.976 226.918 x +b 187.875 259.574 m 179.383 264.302 x +b 189.406 219.94 m 184.976 226.918 x +b 217.611 201.559 m 194.714 170.564 x +b 205.861 207.335 m 187.95 174.155 x +b 217.611 201.559 m 205.861 207.335 x +b 194.714 170.564 m 187.95 174.155 x +b 205.861 207.335 m 187.95 174.155 x +b 196.412 214.078 m 182.997 178.312 x +b 205.861 207.335 m 196.412 214.078 x +b 187.95 174.155 m 182.997 178.312 x +b 194.714 170.564 m 160.607 130.607 x +b 187.95 174.155 m 158.334 132.472 x +b 194.714 170.564 m 187.95 174.155 x +b 187.95 174.155 m 158.334 132.472 x +b 182.997 178.312 m 155.74 133.858 x +b 187.95 174.155 m 182.997 178.312 x +b 196.412 214.078 m 182.997 178.312 x +b 189.406 219.94 m 179.604 181.896 x +b 196.412 214.078 m 189.406 219.94 x +b 182.997 178.312 m 179.604 181.896 x +b 189.406 219.94 m 179.604 181.896 x +b 184.976 226.918 m 179.159 186.203 x +b 189.406 219.94 m 184.976 226.918 x +b 179.604 181.896 m 179.159 186.203 x +b 182.997 178.312 m 155.74 133.858 x +b 179.604 181.896 m 152.926 134.712 x +b 182.997 178.312 m 179.604 181.896 x +b 179.604 181.896 m 152.926 134.712 x +b 179.159 186.203 m 150 135 x +b 179.604 181.896 m 179.159 186.203 x +b 150 300 m 179.383 264.302 x +b 120.736 297.118 m 142.981 259.574 x +b 179.383 264.302 m 142.981 259.574 x +b 120.736 297.118 m 142.981 259.574 x +b 92.5975 288.582 m 114.682 252.407 x +b 142.981 259.574 m 114.682 252.407 x +b 179.383 264.302 m 184.976 226.918 x +b 142.981 259.574 m 158.361 219.94 x +b 179.383 264.302 m 142.981 259.574 x +b 184.976 226.918 m 158.361 219.94 x +b 142.981 259.574 m 158.361 219.94 x +b 114.682 252.407 m 134.405 214.078 x +b 142.981 259.574 m 114.682 252.407 x +b 158.361 219.94 m 134.405 214.078 x +b 92.5975 288.582 m 114.682 252.407 x +b 66.6645 274.72 m 90.6726 242.018 x +b 114.682 252.407 m 90.6726 242.018 x +b 66.6645 274.72 m 90.6726 242.018 x +b 43.934 256.066 m 69.4963 229.58 x +b 90.6726 242.018 m 69.4963 229.58 x +b 114.682 252.407 m 134.405 214.078 x +b 90.6726 242.018 m 113.957 207.335 x +b 114.682 252.407 m 90.6726 242.018 x +b 134.405 214.078 m 113.957 207.335 x +b 90.6726 242.018 m 113.957 207.335 x +b 69.4963 229.58 m 95.1697 201.559 x +b 90.6726 242.018 m 69.4963 229.58 x +b 113.957 207.335 m 95.1697 201.559 x +b 184.976 226.918 m 179.159 186.203 x +b 158.361 219.94 m 160.18 181.896 x +b 184.976 226.918 m 158.361 219.94 x +b 179.159 186.203 m 160.18 181.896 x +b 158.361 219.94 m 160.18 181.896 x +b 134.405 214.078 m 144.515 178.312 x +b 158.361 219.94 m 134.405 214.078 x +b 160.18 181.896 m 144.515 178.312 x +b 179.159 186.203 m 150 135 x +b 160.18 181.896 m 147.074 134.712 x +b 179.159 186.203 m 160.18 181.896 x +b 160.18 181.896 m 147.074 134.712 x +b 144.515 178.312 m 144.26 133.858 x +b 160.18 181.896 m 144.515 178.312 x +b 134.405 214.078 m 144.515 178.312 x +b 113.957 207.335 m 131.15 174.155 x +b 134.405 214.078 m 113.957 207.335 x +b 144.515 178.312 m 131.15 174.155 x +b 113.957 207.335 m 131.15 174.155 x +b 95.1697 201.559 m 119.202 170.564 x +b 113.957 207.335 m 95.1697 201.559 x +b 131.15 174.155 m 119.202 170.564 x +b 144.515 178.312 m 144.26 133.858 x +b 131.15 174.155 m 141.666 132.472 x +b 144.515 178.312 m 131.15 174.155 x +b 131.15 174.155 m 141.666 132.472 x +b 119.202 170.564 m 139.393 130.607 x +b 131.15 174.155 m 119.202 170.564 x +b 43.934 256.066 m 69.4963 229.58 x +b 25.2796 233.336 m 55.8639 210.274 x +b 69.4963 229.58 m 55.8639 210.274 x +b 25.2796 233.336 m 55.8639 210.274 x +b 11.4181 207.403 m 44.7446 189.709 x +b 55.8639 210.274 m 44.7446 189.709 x +b 69.4963 229.58 m 95.1697 201.559 x +b 55.8639 210.274 m 86.7509 185.384 x +b 69.4963 229.58 m 55.8639 210.274 x +b 95.1697 201.559 m 86.7509 185.384 x +b 55.8639 210.274 m 86.7509 185.384 x +b 44.7446 189.709 m 78.5133 170.233 x +b 55.8639 210.274 m 44.7446 189.709 x +b 86.7509 185.384 m 78.5133 170.233 x +b 11.4181 207.403 m 44.7446 189.709 x +b 2.88221 179.264 m 37.2546 167.89 x +b 44.7446 189.709 m 37.2546 167.89 x +b 2.88221 179.264 m 37.2546 167.89 x +b 0 150 m 32.6325 145.754 x +b 37.2546 167.89 m 32.6325 145.754 x +b 44.7446 189.709 m 78.5133 170.233 x +b 37.2546 167.89 m 72.1371 154.954 x +b 44.7446 189.709 m 37.2546 167.89 x +b 78.5133 170.233 m 72.1371 154.954 x +b 37.2546 167.89 m 72.1371 154.954 x +b 32.6325 145.754 m 65.7419 140.339 x +b 37.2546 167.89 m 32.6325 145.754 x +b 72.1371 154.954 m 65.7419 140.339 x +b 95.1697 201.559 m 119.202 170.564 x +b 86.7509 185.384 m 112.538 160.42 x +b 95.1697 201.559 m 86.7509 185.384 x +b 119.202 170.564 m 112.538 160.42 x +b 86.7509 185.384 m 112.538 160.42 x +b 78.5133 170.233 m 106.923 151.101 x +b 86.7509 185.384 m 78.5133 170.233 x +b 112.538 160.42 m 106.923 151.101 x +b 119.202 170.564 m 139.393 130.607 x +b 112.538 160.42 m 137.528 128.334 x +b 119.202 170.564 m 112.538 160.42 x +b 112.538 160.42 m 137.528 128.334 x +b 106.923 151.101 m 136.142 125.74 x +b 112.538 160.42 m 106.923 151.101 x +b 78.5133 170.233 m 106.923 151.101 x +b 72.1371 154.954 m 102.848 141.732 x +b 78.5133 170.233 m 72.1371 154.954 x +b 106.923 151.101 m 102.848 141.732 x +b 72.1371 154.954 m 102.848 141.732 x +b 65.7419 140.339 m 99.2433 132.808 x +b 72.1371 154.954 m 65.7419 140.339 x +b 102.848 141.732 m 99.2433 132.808 x +b 106.923 151.101 m 136.142 125.74 x +b 102.848 141.732 m 135.288 122.926 x +b 106.923 151.101 m 102.848 141.732 x +b 102.848 141.732 m 135.288 122.926 x +b 99.2433 132.808 m 135 120 x +b 102.848 141.732 m 99.2433 132.808 x +b 0 150 m 32.6325 145.754 x +b 2.88221 120.736 m 37.2546 122.996 x +b 32.6325 145.754 m 37.2546 122.996 x +b 2.88221 120.736 m 37.2546 122.996 x +b 11.4181 92.5975 m 44.7446 101.04 x +b 37.2546 122.996 m 44.7446 101.04 x +b 32.6325 145.754 m 65.7419 140.339 x +b 37.2546 122.996 m 72.1371 123.91 x +b 32.6325 145.754 m 37.2546 122.996 x +b 65.7419 140.339 m 72.1371 123.91 x +b 37.2546 122.996 m 72.1371 123.91 x +b 44.7446 101.04 m 78.5133 108.227 x +b 37.2546 122.996 m 44.7446 101.04 x +b 72.1371 123.91 m 78.5133 108.227 x +b 11.4181 92.5975 m 44.7446 101.04 x +b 25.2796 66.6645 m 55.8639 80.6122 x +b 44.7446 101.04 m 55.8639 80.6122 x +b 25.2796 66.6645 m 55.8639 80.6122 x +b 43.934 43.934 m 69.4963 61.9287 x +b 55.8639 80.6122 m 69.4963 61.9287 x +b 44.7446 101.04 m 78.5133 108.227 x +b 55.8639 80.6122 m 86.7509 93.4804 x +b 44.7446 101.04 m 55.8639 80.6122 x +b 78.5133 108.227 m 86.7509 93.4804 x +b 55.8639 80.6122 m 86.7509 93.4804 x +b 69.4963 61.9287 m 95.1697 79.1183 x +b 55.8639 80.6122 m 69.4963 61.9287 x +b 86.7509 93.4804 m 95.1697 79.1183 x +b 65.7419 140.339 m 99.2433 132.808 x +b 72.1371 123.91 m 102.848 122.308 x +b 65.7419 140.339 m 72.1371 123.91 x +b 99.2433 132.808 m 102.848 122.308 x +b 72.1371 123.91 m 102.848 122.308 x +b 78.5133 108.227 m 106.923 112.619 x +b 72.1371 123.91 m 78.5133 108.227 x +b 102.848 122.308 m 106.923 112.619 x +b 99.2433 132.808 m 135 120 x +b 102.848 122.308 m 135.288 117.074 x +b 99.2433 132.808 m 102.848 122.308 x +b 102.848 122.308 m 135.288 117.074 x +b 106.923 112.619 m 136.142 114.26 x +b 102.848 122.308 m 106.923 112.619 x +b 78.5133 108.227 m 106.923 112.619 x +b 86.7509 93.4804 m 112.538 103.619 x +b 78.5133 108.227 m 86.7509 93.4804 x +b 106.923 112.619 m 112.538 103.619 x +b 86.7509 93.4804 m 112.538 103.619 x +b 95.1697 79.1183 m 119.202 95.052 x +b 86.7509 93.4804 m 95.1697 79.1183 x +b 112.538 103.619 m 119.202 95.052 x +b 106.923 112.619 m 136.142 114.26 x +b 112.538 103.619 m 137.528 111.666 x +b 106.923 112.619 m 112.538 103.619 x +b 112.538 103.619 m 137.528 111.666 x +b 119.202 95.052 m 139.393 109.393 x +b 112.538 103.619 m 119.202 95.052 x +b 43.934 43.934 m 69.4963 61.9287 x +b 66.6645 25.2796 m 90.6726 48.8674 x +b 69.4963 61.9287 m 90.6726 48.8674 x +b 66.6645 25.2796 m 90.6726 48.8674 x +b 92.5975 11.4181 m 114.682 38.3417 x +b 90.6726 48.8674 m 114.682 38.3417 x +b 69.4963 61.9287 m 95.1697 79.1183 x +b 90.6726 48.8674 m 113.957 71.5288 x +b 69.4963 61.9287 m 90.6726 48.8674 x +b 95.1697 79.1183 m 113.957 71.5288 x +b 90.6726 48.8674 m 113.957 71.5288 x +b 114.682 38.3417 m 134.405 64.3816 x +b 90.6726 48.8674 m 114.682 38.3417 x +b 113.957 71.5288 m 134.405 64.3816 x +b 92.5975 11.4181 m 114.682 38.3417 x +b 120.736 2.88221 m 142.981 31.3115 x +b 114.682 38.3417 m 142.981 31.3115 x +b 120.736 2.88221 m 142.981 31.3115 x +b 150 0 m 179.383 27.207 x +b 142.981 31.3115 m 179.383 27.207 x +b 114.682 38.3417 m 134.405 64.3816 x +b 142.981 31.3115 m 158.361 58.9245 x +b 114.682 38.3417 m 142.981 31.3115 x +b 134.405 64.3816 m 158.361 58.9245 x +b 142.981 31.3115 m 158.361 58.9245 x +b 179.383 27.207 m 184.976 53.7599 x +b 142.981 31.3115 m 179.383 27.207 x +b 158.361 58.9245 m 184.976 53.7599 x +b 95.1697 79.1183 m 119.202 95.052 x +b 113.957 71.5288 m 131.15 89.8844 x +b 95.1697 79.1183 m 113.957 71.5288 x +b 119.202 95.052 m 131.15 89.8844 x +b 113.957 71.5288 m 131.15 89.8844 x +b 134.405 64.3816 m 144.515 85.4079 x +b 113.957 71.5288 m 134.405 64.3816 x +b 131.15 89.8844 m 144.515 85.4079 x +b 119.202 95.052 m 139.393 109.393 x +b 131.15 89.8844 m 141.666 107.528 x +b 119.202 95.052 m 131.15 89.8844 x +b 131.15 89.8844 m 141.666 107.528 x +b 144.515 85.4079 m 144.26 106.142 x +b 131.15 89.8844 m 144.515 85.4079 x +b 134.405 64.3816 m 144.515 85.4079 x +b 158.361 58.9245 m 160.18 82.1435 x +b 134.405 64.3816 m 158.361 58.9245 x +b 144.515 85.4079 m 160.18 82.1435 x +b 158.361 58.9245 m 160.18 82.1435 x +b 184.976 53.7599 m 179.159 79.4129 x +b 158.361 58.9245 m 184.976 53.7599 x +b 160.18 82.1435 m 179.159 79.4129 x +b 144.515 85.4079 m 144.26 106.142 x +b 160.18 82.1435 m 147.074 105.288 x +b 144.515 85.4079 m 160.18 82.1435 x +b 160.18 82.1435 m 147.074 105.288 x +b 179.159 79.4129 m 150 105 x +b 160.18 82.1435 m 179.159 79.4129 x +b 150 0 m 179.383 27.207 x +b 179.264 2.88221 m 187.875 31.3115 x +b 179.383 27.207 m 187.875 31.3115 x +b 179.264 2.88221 m 187.875 31.3115 x +b 207.403 11.4181 m 203.351 38.3417 x +b 187.875 31.3115 m 203.351 38.3417 x +b 179.383 27.207 m 184.976 53.7599 x +b 187.875 31.3115 m 189.406 58.9245 x +b 179.383 27.207 m 187.875 31.3115 x +b 184.976 53.7599 m 189.406 58.9245 x +b 187.875 31.3115 m 189.406 58.9245 x +b 203.351 38.3417 m 196.412 64.3816 x +b 187.875 31.3115 m 203.351 38.3417 x +b 189.406 58.9245 m 196.412 64.3816 x +b 207.403 11.4181 m 203.351 38.3417 x +b 233.336 25.2796 m 220.334 48.8674 x +b 203.351 38.3417 m 220.334 48.8674 x +b 233.336 25.2796 m 220.334 48.8674 x +b 256.066 43.934 m 237.148 61.9287 x +b 220.334 48.8674 m 237.148 61.9287 x +b 203.351 38.3417 m 196.412 64.3816 x +b 220.334 48.8674 m 205.861 71.5288 x +b 203.351 38.3417 m 220.334 48.8674 x +b 196.412 64.3816 m 205.861 71.5288 x +b 220.334 48.8674 m 205.861 71.5288 x +b 237.148 61.9287 m 217.611 79.1183 x +b 220.334 48.8674 m 237.148 61.9287 x +b 205.861 71.5288 m 217.611 79.1183 x +b 184.976 53.7599 m 179.159 79.4129 x +b 189.406 58.9245 m 179.604 82.1435 x +b 184.976 53.7599 m 189.406 58.9245 x +b 179.159 79.4129 m 179.604 82.1435 x +b 189.406 58.9245 m 179.604 82.1435 x +b 196.412 64.3816 m 182.997 85.4079 x +b 189.406 58.9245 m 196.412 64.3816 x +b 179.604 82.1435 m 182.997 85.4079 x +b 179.159 79.4129 m 150 105 x +b 179.604 82.1435 m 152.926 105.288 x +b 179.159 79.4129 m 179.604 82.1435 x +b 179.604 82.1435 m 152.926 105.288 x +b 182.997 85.4079 m 155.74 106.142 x +b 179.604 82.1435 m 182.997 85.4079 x +b 196.412 64.3816 m 182.997 85.4079 x +b 205.861 71.5288 m 187.95 89.8844 x +b 196.412 64.3816 m 205.861 71.5288 x +b 182.997 85.4079 m 187.95 89.8844 x +b 205.861 71.5288 m 187.95 89.8844 x +b 217.611 79.1183 m 194.714 95.052 x +b 205.861 71.5288 m 217.611 79.1183 x +b 187.95 89.8844 m 194.714 95.052 x +b 182.997 85.4079 m 155.74 106.142 x +b 187.95 89.8844 m 158.334 107.528 x +b 182.997 85.4079 m 187.95 89.8844 x +b 187.95 89.8844 m 158.334 107.528 x +b 194.714 95.052 m 160.607 109.393 x +b 187.95 89.8844 m 194.714 95.052 x +b 256.066 43.934 m 237.148 61.9287 x +b 274.72 66.6645 m 249.015 80.6122 x +b 237.148 61.9287 m 249.015 80.6122 x +b 274.72 66.6645 m 249.015 80.6122 x +b 288.582 92.5975 m 258.81 101.04 x +b 249.015 80.6122 m 258.81 101.04 x +b 237.148 61.9287 m 217.611 79.1183 x +b 249.015 80.6122 m 222.557 93.4804 x +b 237.148 61.9287 m 249.015 80.6122 x +b 217.611 79.1183 m 222.557 93.4804 x +b 249.015 80.6122 m 222.557 93.4804 x +b 258.81 101.04 m 228.21 108.227 x +b 249.015 80.6122 m 258.81 101.04 x +b 222.557 93.4804 m 228.21 108.227 x +b 288.582 92.5975 m 258.81 101.04 x +b 297.118 120.736 m 265.518 122.996 x +b 258.81 101.04 m 265.518 122.996 x +b 297.118 120.736 m 265.518 122.996 x +b 300 150 m 269.727 145.754 x +b 265.518 122.996 m 269.727 145.754 x +b 258.81 101.04 m 228.21 108.227 x +b 265.518 122.996 m 233.152 123.91 x +b 258.81 101.04 m 265.518 122.996 x +b 228.21 108.227 m 233.152 123.91 x +b 265.518 122.996 m 233.152 123.91 x +b 269.727 145.754 m 238.9 140.339 x +b 265.518 122.996 m 269.727 145.754 x +b 233.152 123.91 m 238.9 140.339 x +b 217.611 79.1183 m 194.714 95.052 x +b 222.557 93.4804 m 196.809 103.619 x +b 217.611 79.1183 m 222.557 93.4804 x +b 194.714 95.052 m 196.809 103.619 x +b 222.557 93.4804 m 196.809 103.619 x +b 228.21 108.227 m 199.827 112.619 x +b 222.557 93.4804 m 228.21 108.227 x +b 196.809 103.619 m 199.827 112.619 x +b 194.714 95.052 m 160.607 109.393 x +b 196.809 103.619 m 162.472 111.666 x +b 194.714 95.052 m 196.809 103.619 x +b 196.809 103.619 m 162.472 111.666 x +b 199.827 112.619 m 163.858 114.26 x +b 196.809 103.619 m 199.827 112.619 x +b 228.21 108.227 m 199.827 112.619 x +b 233.152 123.91 m 202.601 122.308 x +b 228.21 108.227 m 233.152 123.91 x +b 199.827 112.619 m 202.601 122.308 x +b 233.152 123.91 m 202.601 122.308 x +b 238.9 140.339 m 206.034 132.808 x +b 233.152 123.91 m 238.9 140.339 x +b 202.601 122.308 m 206.034 132.808 x +b 199.827 112.619 m 163.858 114.26 x +b 202.601 122.308 m 164.712 117.074 x +b 199.827 112.619 m 202.601 122.308 x +b 202.601 122.308 m 164.712 117.074 x +b 206.034 132.808 m 165 120 x +b 202.601 122.308 m 206.034 132.808 x +b 300 150 m 299.678 159.817 x +b 299.678 159.817 m 298.717 169.572 x +b 298.717 169.572 m 297.118 179.264 x +b 297.118 179.264 m 294.887 188.83 x +b 294.887 188.83 m 292.042 198.209 x +b 292.042 198.209 m 288.582 207.403 x +b 288.582 207.403 m 284.528 216.35 x +b 284.528 216.35 m 279.907 224.994 x +b 279.907 224.994 m 274.72 233.336 x +b 274.72 233.336 m 268.999 241.32 x +b 268.999 241.32 m 262.78 248.896 x +b 262.78 248.896 m 256.066 256.066 x +b 165 120 m 164.968 120.982 x +b 164.968 120.982 m 164.872 121.957 x +b 164.872 121.957 m 164.712 122.926 x +b 164.712 122.926 m 164.489 123.883 x +b 164.489 123.883 m 164.204 124.821 x +b 164.204 124.821 m 163.858 125.74 x +b 163.858 125.74 m 163.453 126.635 x +b 163.453 126.635 m 162.991 127.499 x +b 162.991 127.499 m 162.472 128.334 x +b 162.472 128.334 m 161.9 129.132 x +b 161.9 129.132 m 161.278 129.89 x +b 161.278 129.89 m 160.607 130.607 x +b 256.066 256.066 m 248.896 262.78 x +b 248.896 262.78 m 241.32 268.999 x +b 241.32 268.999 m 233.336 274.72 x +b 233.336 274.72 m 224.994 279.907 x +b 224.994 279.907 m 216.35 284.528 x +b 216.35 284.528 m 207.403 288.582 x +b 207.403 288.582 m 198.209 292.042 x +b 198.209 292.042 m 188.83 294.887 x +b 188.83 294.887 m 179.264 297.118 x +b 179.264 297.118 m 169.572 298.717 x +b 169.572 298.717 m 159.817 299.678 x +b 159.817 299.678 m 150 300 x +b 160.607 130.607 m 159.89 131.278 x +b 159.89 131.278 m 159.132 131.9 x +b 159.132 131.9 m 158.334 132.472 x +b 158.334 132.472 m 157.499 132.991 x +b 157.499 132.991 m 156.635 133.453 x +b 156.635 133.453 m 155.74 133.858 x +b 155.74 133.858 m 154.821 134.204 x +b 154.821 134.204 m 153.883 134.489 x +b 153.883 134.489 m 152.926 134.712 x +b 152.926 134.712 m 151.957 134.872 x +b 151.957 134.872 m 150.982 134.968 x +b 150.982 134.968 m 150 135 x +b 150 300 m 140.183 299.678 x +b 140.183 299.678 m 130.428 298.717 x +b 130.428 298.717 m 120.736 297.118 x +b 120.736 297.118 m 111.17 294.887 x +b 111.17 294.887 m 101.791 292.042 x +b 101.791 292.042 m 92.5975 288.582 x +b 92.5975 288.582 m 83.6505 284.528 x +b 83.6505 284.528 m 75.0062 279.907 x +b 75.0062 279.907 m 66.6645 274.72 x +b 66.6645 274.72 m 58.6803 268.999 x +b 58.6803 268.999 m 51.1035 262.78 x +b 51.1035 262.78 m 43.934 256.066 x +b 150 135 m 149.018 134.968 x +b 149.018 134.968 m 148.043 134.872 x +b 148.043 134.872 m 147.074 134.712 x +b 147.074 134.712 m 146.117 134.489 x +b 146.117 134.489 m 145.179 134.204 x +b 145.179 134.204 m 144.26 133.858 x +b 144.26 133.858 m 143.365 133.453 x +b 143.365 133.453 m 142.501 132.991 x +b 142.501 132.991 m 141.666 132.472 x +b 141.666 132.472 m 140.868 131.9 x +b 140.868 131.9 m 140.11 131.278 x +b 140.11 131.278 m 139.393 130.607 x +b 43.934 256.066 m 37.2195 248.896 x +b 37.2195 248.896 m 31.0014 241.32 x +b 31.0014 241.32 m 25.2796 233.336 x +b 25.2796 233.336 m 20.0928 224.994 x +b 20.0928 224.994 m 15.4723 216.35 x +b 15.4723 216.35 m 11.4181 207.403 x +b 11.4181 207.403 m 7.95839 198.209 x +b 7.95839 198.209 m 5.1131 188.83 x +b 5.1131 188.83 m 2.88221 179.264 x +b 2.88221 179.264 m 1.28253 169.572 x +b 1.28253 169.572 m 0.321791 159.817 x +b 0.321791 159.817 m 0 150 x +b 139.393 130.607 m 138.722 129.89 x +b 138.722 129.89 m 138.1 129.132 x +b 138.1 129.132 m 137.528 128.334 x +b 137.528 128.334 m 137.009 127.499 x +b 137.009 127.499 m 136.547 126.635 x +b 136.547 126.635 m 136.142 125.74 x +b 136.142 125.74 m 135.796 124.821 x +b 135.796 124.821 m 135.511 123.883 x +b 135.511 123.883 m 135.288 122.926 x +b 135.288 122.926 m 135.128 121.957 x +b 135.128 121.957 m 135.032 120.982 x +b 135.032 120.982 m 135 120 x +b 0 150 m 0.321791 140.183 x +b 0.321791 140.183 m 1.28253 130.428 x +b 1.28253 130.428 m 2.88221 120.736 x +b 2.88221 120.736 m 5.1131 111.17 x +b 5.1131 111.17 m 7.95839 101.791 x +b 7.95839 101.791 m 11.4181 92.5975 x +b 11.4181 92.5975 m 15.4723 83.6505 x +b 15.4723 83.6505 m 20.0928 75.0062 x +b 20.0928 75.0062 m 25.2796 66.6645 x +b 25.2796 66.6645 m 31.0014 58.6803 x +b 31.0014 58.6803 m 37.2195 51.1035 x +b 37.2195 51.1035 m 43.934 43.934 x +b 135 120 m 135.032 119.018 x +b 135.032 119.018 m 135.128 118.043 x +b 135.128 118.043 m 135.288 117.074 x +b 135.288 117.074 m 135.511 116.117 x +b 135.511 116.117 m 135.796 115.179 x +b 135.796 115.179 m 136.142 114.26 x +b 136.142 114.26 m 136.547 113.365 x +b 136.547 113.365 m 137.009 112.501 x +b 137.009 112.501 m 137.528 111.666 x +b 137.528 111.666 m 138.1 110.868 x +b 138.1 110.868 m 138.722 110.11 x +b 138.722 110.11 m 139.393 109.393 x +b 43.934 43.934 m 51.1035 37.2195 x +b 51.1035 37.2195 m 58.6803 31.0014 x +b 58.6803 31.0014 m 66.6645 25.2796 x +b 66.6645 25.2796 m 75.0062 20.0928 x +b 75.0062 20.0928 m 83.6505 15.4723 x +b 83.6505 15.4723 m 92.5975 11.4181 x +b 92.5975 11.4181 m 101.791 7.95839 x +b 101.791 7.95839 m 111.17 5.1131 x +b 111.17 5.1131 m 120.736 2.88221 x +b 120.736 2.88221 m 130.428 1.28253 x +b 130.428 1.28253 m 140.183 0.321791 x +b 140.183 0.321791 m 150 0 x +b 139.393 109.393 m 140.11 108.722 x +b 140.11 108.722 m 140.868 108.1 x +b 140.868 108.1 m 141.666 107.528 x +b 141.666 107.528 m 142.501 107.009 x +b 142.501 107.009 m 143.365 106.547 x +b 143.365 106.547 m 144.26 106.142 x +b 144.26 106.142 m 145.179 105.796 x +b 145.179 105.796 m 146.117 105.511 x +b 146.117 105.511 m 147.074 105.288 x +b 147.074 105.288 m 148.043 105.128 x +b 148.043 105.128 m 149.018 105.032 x +b 149.018 105.032 m 150 105 x +b 150 0 m 159.817 0.321791 x +b 159.817 0.321791 m 169.572 1.28253 x +b 169.572 1.28253 m 179.264 2.88221 x +b 179.264 2.88221 m 188.83 5.1131 x +b 188.83 5.1131 m 198.209 7.95839 x +b 198.209 7.95839 m 207.403 11.4181 x +b 207.403 11.4181 m 216.35 15.4723 x +b 216.35 15.4723 m 224.994 20.0928 x +b 224.994 20.0928 m 233.336 25.2796 x +b 233.336 25.2796 m 241.32 31.0014 x +b 241.32 31.0014 m 248.896 37.2195 x +b 248.896 37.2195 m 256.066 43.934 x +b 150 105 m 150.982 105.032 x +b 150.982 105.032 m 151.957 105.128 x +b 151.957 105.128 m 152.926 105.288 x +b 152.926 105.288 m 153.883 105.511 x +b 153.883 105.511 m 154.821 105.796 x +b 154.821 105.796 m 155.74 106.142 x +b 155.74 106.142 m 156.635 106.547 x +b 156.635 106.547 m 157.499 107.009 x +b 157.499 107.009 m 158.334 107.528 x +b 158.334 107.528 m 159.132 108.1 x +b 159.132 108.1 m 159.89 108.722 x +b 159.89 108.722 m 160.607 109.393 x +b 256.066 43.934 m 262.78 51.1035 x +b 262.78 51.1035 m 268.999 58.6803 x +b 268.999 58.6803 m 274.72 66.6645 x +b 274.72 66.6645 m 279.907 75.0062 x +b 279.907 75.0062 m 284.528 83.6505 x +b 284.528 83.6505 m 288.582 92.5975 x +b 288.582 92.5975 m 292.042 101.791 x +b 292.042 101.791 m 294.887 111.17 x +b 294.887 111.17 m 297.118 120.736 x +b 297.118 120.736 m 298.717 130.428 x +b 298.717 130.428 m 299.678 140.183 x +b 299.678 140.183 m 300 150 x +b 160.607 109.393 m 161.278 110.11 x +b 161.278 110.11 m 161.9 110.868 x +b 161.9 110.868 m 162.472 111.666 x +b 162.472 111.666 m 162.991 112.501 x +b 162.991 112.501 m 163.453 113.365 x +b 163.453 113.365 m 163.858 114.26 x +b 163.858 114.26 m 164.204 115.179 x +b 164.204 115.179 m 164.489 116.117 x +b 164.489 116.117 m 164.712 117.074 x +b 164.712 117.074 m 164.872 118.043 x +b 164.872 118.043 m 164.968 119.018 x +b 164.968 119.018 m 165 120 x +showpage diff --git a/tests/deal.II/normal_flux_inhom_01.cc b/tests/deal.II/normal_flux_inhom_01.cc new file mode 100644 index 0000000000..5d725287e5 --- /dev/null +++ b/tests/deal.II/normal_flux_inhom_01.cc @@ -0,0 +1,130 @@ +// --------------------------------------------------------------------- +// $Id: no_flux_inhom_01.cc 31349 2013-10-20 19:07:06Z maier $ +// +// Copyright (C) 2007 - 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. +// +// --------------------------------------------------------------------- + + + +// check the creation of inhomogeneous normal-flux boundary conditions +// for a finite element that consists of only a single set of vector +// components (i.e. it has dim components) + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + + +template +void test (const Triangulation &tr, + const FiniteElement &fe) +{ + DoFHandler dof(tr); + dof.distribute_dofs(fe); + + ConstantFunction constant_function(1.,dim); + typename FunctionMap::type function_map; + for (unsigned int j=0; j::faces_per_cell; ++j) + function_map[j] = &constant_function; + + for (unsigned int i=0; i::faces_per_cell; ++i) + { + deallog << "FE=" << fe.get_name() + << ", case=" << i + << std::endl; + + std::set boundary_ids; + for (unsigned int j=0; j<=i; ++j) + boundary_ids.insert (j); + + ConstraintMatrix cm; + VectorTools::compute_nonzero_normal_flux_constraints + (dof, 0, boundary_ids, function_map, cm); + + cm.print (deallog.get_file_stream ()); + } + //Get the location of all boundary dofs + std::vector face_dofs; + const std::vector > & + unit_support_points = fe.get_unit_face_support_points(); + Quadrature quadrature(unit_support_points); + FEFaceValues fe_face_values(fe, quadrature, update_q_points); + typename DoFHandler::active_cell_iterator + cell = dof.begin_active(), + endc = dof.end(); + for (; cell!=endc; ++cell) + for (unsigned int face_no=0; face_no < GeometryInfo::faces_per_cell; + ++face_no) + if (cell->face(face_no)->at_boundary()) + { + typename DoFHandler::face_iterator face = cell->face(face_no); + face_dofs.resize (fe.dofs_per_face); + face->get_dof_indices (face_dofs); + + fe_face_values.reinit(cell, face_no); + for (unsigned int i=0; i +void test_hyper_cube() +{ + Triangulation tr; + GridGenerator::hyper_cube(tr); + + for (unsigned int i=0; i::faces_per_cell; ++i) + tr.begin_active()->face(i)->set_boundary_indicator (i); + + tr.refine_global(2); + + for (unsigned int degree=1; degree<4; ++degree) + { + FESystem fe (FE_Q(degree), dim); + test(tr, fe); + } +} + + +int main() +{ + std::ofstream logfile ("output"); + deallog << std::setprecision (2); + deallog << std::fixed; + deallog.attach(logfile); + deallog.depth_console (0); + deallog.threshold_double(1.e-12); + + test_hyper_cube<2>(); + test_hyper_cube<3>(); +} diff --git a/tests/deal.II/normal_flux_inhom_01.output b/tests/deal.II/normal_flux_inhom_01.output new file mode 100644 index 0000000000..02a42423b8 --- /dev/null +++ b/tests/deal.II/normal_flux_inhom_01.output @@ -0,0 +1,6076 @@ + +DEAL::FE=FESystem<2>[FE_Q<2>(1)^2], case=0 + 0 = 1.00000 + 4 = 1.00000 + 12 = 1.00000 + 30 = 1.00000 + 36 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(1)^2], case=1 + 0 = 1.00000 + 4 = 1.00000 + 12 = 1.00000 + 22 = 1.00000 + 24 = 1.00000 + 28 = 1.00000 + 30 = 1.00000 + 36 = 1.00000 + 44 = 1.00000 + 48 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(1)^2], case=2 + 0 = 1.00000 + 1 = 1.00000 + 3 = 1.00000 + 4 = 1.00000 + 9 = 1.00000 + 12 = 1.00000 + 19 = 1.00000 + 22 = 1.00000 + 23 = 1.00000 + 24 = 1.00000 + 28 = 1.00000 + 30 = 1.00000 + 36 = 1.00000 + 44 = 1.00000 + 48 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(1)^2], case=3 + 0 = 1.00000 + 1 = 1.00000 + 3 = 1.00000 + 4 = 1.00000 + 9 = 1.00000 + 12 = 1.00000 + 19 = 1.00000 + 22 = 1.00000 + 23 = 1.00000 + 24 = 1.00000 + 28 = 1.00000 + 30 = 1.00000 + 36 = 1.00000 + 37 = 1.00000 + 39 = 1.00000 + 41 = 1.00000 + 44 = 1.00000 + 47 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(2)^2], case=0 + 0 = 1.00000 + 4 = 1.00000 + 8 = 1.00000 + 30 = 1.00000 + 34 = 1.00000 + 90 = 1.00000 + 94 = 1.00000 + 110 = 1.00000 + 114 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(2)^2], case=1 + 0 = 1.00000 + 4 = 1.00000 + 8 = 1.00000 + 30 = 1.00000 + 34 = 1.00000 + 62 = 1.00000 + 64 = 1.00000 + 66 = 1.00000 + 82 = 1.00000 + 84 = 1.00000 + 90 = 1.00000 + 94 = 1.00000 + 110 = 1.00000 + 114 = 1.00000 + 138 = 1.00000 + 140 = 1.00000 + 154 = 1.00000 + 156 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(2)^2], case=2 + 0 = 1.00000 + 1 = 1.00000 + 3 = 1.00000 + 4 = 1.00000 + 8 = 1.00000 + 13 = 1.00000 + 19 = 1.00000 + 25 = 1.00000 + 30 = 1.00000 + 34 = 1.00000 + 51 = 1.00000 + 57 = 1.00000 + 62 = 1.00000 + 63 = 1.00000 + 64 = 1.00000 + 66 = 1.00000 + 69 = 1.00000 + 82 = 1.00000 + 84 = 1.00000 + 90 = 1.00000 + 94 = 1.00000 + 110 = 1.00000 + 114 = 1.00000 + 138 = 1.00000 + 140 = 1.00000 + 154 = 1.00000 + 156 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(2)^2], case=3 + 0 = 1.00000 + 1 = 1.00000 + 3 = 1.00000 + 4 = 1.00000 + 8 = 1.00000 + 13 = 1.00000 + 19 = 1.00000 + 25 = 1.00000 + 30 = 1.00000 + 34 = 1.00000 + 51 = 1.00000 + 57 = 1.00000 + 62 = 1.00000 + 63 = 1.00000 + 64 = 1.00000 + 66 = 1.00000 + 69 = 1.00000 + 82 = 1.00000 + 84 = 1.00000 + 90 = 1.00000 + 94 = 1.00000 + 110 = 1.00000 + 111 = 1.00000 + 113 = 1.00000 + 114 = 1.00000 + 119 = 1.00000 + 123 = 1.00000 + 127 = 1.00000 + 138 = 1.00000 + 140 = 1.00000 + 147 = 1.00000 + 151 = 1.00000 + 154 = 1.00000 + 155 = 1.00000 + 156 = 1.00000 + 159 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(3)^2], case=0 + 0 = 1.00000 + 4 = 1.00000 + 8 = 1.00000 + 9 = 1.00000 + 56 = 1.00000 + 60 = 1.00000 + 61 = 1.00000 + 182 = 1.00000 + 186 = 1.00000 + 187 = 1.00000 + 224 = 1.00000 + 228 = 1.00000 + 229 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(3)^2], case=1 + 0 = 1.00000 + 4 = 1.00000 + 8 = 1.00000 + 9 = 1.00000 + 56 = 1.00000 + 60 = 1.00000 + 61 = 1.00000 + 122 = 1.00000 + 124 = 1.00000 + 126 = 1.00000 + 127 = 1.00000 + 164 = 1.00000 + 166 = 1.00000 + 167 = 1.00000 + 182 = 1.00000 + 186 = 1.00000 + 187 = 1.00000 + 224 = 1.00000 + 228 = 1.00000 + 229 = 1.00000 + 284 = 1.00000 + 286 = 1.00000 + 287 = 1.00000 + 320 = 1.00000 + 322 = 1.00000 + 323 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(3)^2], case=2 + 0 = 1.00000 + 1 = 1.00000 + 3 = 1.00000 + 4 = 1.00000 + 8 = 1.00000 + 9 = 1.00000 + 18 = 1.00000 + 19 = 1.00000 + 33 = 1.00000 + 42 = 1.00000 + 43 = 1.00000 + 56 = 1.00000 + 60 = 1.00000 + 61 = 1.00000 + 99 = 1.00000 + 108 = 1.00000 + 109 = 1.00000 + 122 = 1.00000 + 123 = 1.00000 + 124 = 1.00000 + 126 = 1.00000 + 127 = 1.00000 + 132 = 1.00000 + 133 = 1.00000 + 164 = 1.00000 + 166 = 1.00000 + 167 = 1.00000 + 182 = 1.00000 + 186 = 1.00000 + 187 = 1.00000 + 224 = 1.00000 + 228 = 1.00000 + 229 = 1.00000 + 284 = 1.00000 + 286 = 1.00000 + 287 = 1.00000 + 320 = 1.00000 + 322 = 1.00000 + 323 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(3)^2], case=3 + 0 = 1.00000 + 1 = 1.00000 + 3 = 1.00000 + 4 = 1.00000 + 8 = 1.00000 + 9 = 1.00000 + 18 = 1.00000 + 19 = 1.00000 + 33 = 1.00000 + 42 = 1.00000 + 43 = 1.00000 + 56 = 1.00000 + 60 = 1.00000 + 61 = 1.00000 + 99 = 1.00000 + 108 = 1.00000 + 109 = 1.00000 + 122 = 1.00000 + 123 = 1.00000 + 124 = 1.00000 + 126 = 1.00000 + 127 = 1.00000 + 132 = 1.00000 + 133 = 1.00000 + 164 = 1.00000 + 166 = 1.00000 + 167 = 1.00000 + 182 = 1.00000 + 186 = 1.00000 + 187 = 1.00000 + 224 = 1.00000 + 225 = 1.00000 + 227 = 1.00000 + 228 = 1.00000 + 229 = 1.00000 + 238 = 1.00000 + 239 = 1.00000 + 249 = 1.00000 + 256 = 1.00000 + 257 = 1.00000 + 284 = 1.00000 + 286 = 1.00000 + 287 = 1.00000 + 303 = 1.00000 + 310 = 1.00000 + 311 = 1.00000 + 320 = 1.00000 + 321 = 1.00000 + 322 = 1.00000 + 323 = 1.00000 + 328 = 1.00000 + 329 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=0 + 0 = 1.00000 + 6 = 1.00000 + 12 = 1.00000 + 18 = 1.00000 + 36 = 1.00000 + 42 = 1.00000 + 54 = 1.00000 + 60 = 1.00000 + 72 = 1.00000 + 135 = 1.00000 + 141 = 1.00000 + 153 = 1.00000 + 159 = 1.00000 + 171 = 1.00000 + 180 = 1.00000 + 225 = 1.00000 + 231 = 1.00000 + 243 = 1.00000 + 252 = 1.00000 + 258 = 1.00000 + 270 = 1.00000 + 315 = 1.00000 + 324 = 1.00000 + 333 = 1.00000 + 342 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=1 + 0 = 1.00000 + 6 = 1.00000 + 12 = 1.00000 + 18 = 1.00000 + 36 = 1.00000 + 42 = 1.00000 + 54 = 1.00000 + 60 = 1.00000 + 72 = 1.00000 + 93 = 1.00000 + 96 = 1.00000 + 99 = 1.00000 + 102 = 1.00000 + 111 = 1.00000 + 114 = 1.00000 + 123 = 1.00000 + 126 = 1.00000 + 132 = 1.00000 + 135 = 1.00000 + 141 = 1.00000 + 153 = 1.00000 + 159 = 1.00000 + 171 = 1.00000 + 180 = 1.00000 + 195 = 1.00000 + 198 = 1.00000 + 207 = 1.00000 + 210 = 1.00000 + 216 = 1.00000 + 222 = 1.00000 + 225 = 1.00000 + 231 = 1.00000 + 243 = 1.00000 + 252 = 1.00000 + 258 = 1.00000 + 270 = 1.00000 + 285 = 1.00000 + 288 = 1.00000 + 294 = 1.00000 + 303 = 1.00000 + 306 = 1.00000 + 312 = 1.00000 + 315 = 1.00000 + 324 = 1.00000 + 333 = 1.00000 + 342 = 1.00000 + 354 = 1.00000 + 360 = 1.00000 + 366 = 1.00000 + 372 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=2 + 0 = 1.00000 + 1 = 1.00000 + 4 = 1.00000 + 6 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 16 = 1.00000 + 18 = 1.00000 + 25 = 1.00000 + 31 = 1.00000 + 36 = 1.00000 + 42 = 1.00000 + 54 = 1.00000 + 55 = 1.00000 + 58 = 1.00000 + 60 = 1.00000 + 67 = 1.00000 + 72 = 1.00000 + 82 = 1.00000 + 88 = 1.00000 + 93 = 1.00000 + 94 = 1.00000 + 96 = 1.00000 + 99 = 1.00000 + 100 = 1.00000 + 102 = 1.00000 + 111 = 1.00000 + 114 = 1.00000 + 118 = 1.00000 + 123 = 1.00000 + 124 = 1.00000 + 126 = 1.00000 + 132 = 1.00000 + 135 = 1.00000 + 141 = 1.00000 + 153 = 1.00000 + 159 = 1.00000 + 171 = 1.00000 + 180 = 1.00000 + 195 = 1.00000 + 198 = 1.00000 + 207 = 1.00000 + 210 = 1.00000 + 216 = 1.00000 + 222 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 229 = 1.00000 + 231 = 1.00000 + 238 = 1.00000 + 243 = 1.00000 + 252 = 1.00000 + 253 = 1.00000 + 256 = 1.00000 + 258 = 1.00000 + 265 = 1.00000 + 270 = 1.00000 + 280 = 1.00000 + 285 = 1.00000 + 286 = 1.00000 + 288 = 1.00000 + 294 = 1.00000 + 298 = 1.00000 + 303 = 1.00000 + 304 = 1.00000 + 306 = 1.00000 + 312 = 1.00000 + 315 = 1.00000 + 324 = 1.00000 + 333 = 1.00000 + 342 = 1.00000 + 354 = 1.00000 + 360 = 1.00000 + 366 = 1.00000 + 372 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=3 + 0 = 1.00000 + 1 = 1.00000 + 4 = 1.00000 + 6 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 16 = 1.00000 + 18 = 1.00000 + 25 = 1.00000 + 31 = 1.00000 + 36 = 1.00000 + 42 = 1.00000 + 54 = 1.00000 + 55 = 1.00000 + 58 = 1.00000 + 60 = 1.00000 + 67 = 1.00000 + 72 = 1.00000 + 82 = 1.00000 + 88 = 1.00000 + 93 = 1.00000 + 94 = 1.00000 + 96 = 1.00000 + 99 = 1.00000 + 100 = 1.00000 + 102 = 1.00000 + 111 = 1.00000 + 114 = 1.00000 + 118 = 1.00000 + 123 = 1.00000 + 124 = 1.00000 + 126 = 1.00000 + 132 = 1.00000 + 135 = 1.00000 + 141 = 1.00000 + 153 = 1.00000 + 154 = 1.00000 + 157 = 1.00000 + 159 = 1.00000 + 160 = 1.00000 + 163 = 1.00000 + 166 = 1.00000 + 169 = 1.00000 + 171 = 1.00000 + 180 = 1.00000 + 181 = 1.00000 + 184 = 1.00000 + 187 = 1.00000 + 195 = 1.00000 + 198 = 1.00000 + 202 = 1.00000 + 205 = 1.00000 + 207 = 1.00000 + 208 = 1.00000 + 210 = 1.00000 + 211 = 1.00000 + 216 = 1.00000 + 220 = 1.00000 + 222 = 1.00000 + 223 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 229 = 1.00000 + 231 = 1.00000 + 238 = 1.00000 + 243 = 1.00000 + 252 = 1.00000 + 253 = 1.00000 + 256 = 1.00000 + 258 = 1.00000 + 265 = 1.00000 + 270 = 1.00000 + 280 = 1.00000 + 285 = 1.00000 + 286 = 1.00000 + 288 = 1.00000 + 294 = 1.00000 + 298 = 1.00000 + 303 = 1.00000 + 304 = 1.00000 + 306 = 1.00000 + 312 = 1.00000 + 315 = 1.00000 + 324 = 1.00000 + 325 = 1.00000 + 328 = 1.00000 + 331 = 1.00000 + 333 = 1.00000 + 342 = 1.00000 + 343 = 1.00000 + 346 = 1.00000 + 349 = 1.00000 + 354 = 1.00000 + 358 = 1.00000 + 360 = 1.00000 + 361 = 1.00000 + 366 = 1.00000 + 370 = 1.00000 + 372 = 1.00000 + 373 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=4 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 4 = 1.00000 + 5 = 1.00000 + 6 = 1.00000 + 8 = 1.00000 + 11 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 16 = 1.00000 + 18 = 1.00000 + 25 = 1.00000 + 26 = 1.00000 + 29 = 1.00000 + 31 = 1.00000 + 36 = 1.00000 + 38 = 1.00000 + 41 = 1.00000 + 42 = 1.00000 + 50 = 1.00000 + 54 = 1.00000 + 55 = 1.00000 + 58 = 1.00000 + 60 = 1.00000 + 67 = 1.00000 + 72 = 1.00000 + 82 = 1.00000 + 83 = 1.00000 + 86 = 1.00000 + 88 = 1.00000 + 93 = 1.00000 + 94 = 1.00000 + 95 = 1.00000 + 96 = 1.00000 + 98 = 1.00000 + 99 = 1.00000 + 100 = 1.00000 + 102 = 1.00000 + 107 = 1.00000 + 111 = 1.00000 + 113 = 1.00000 + 114 = 1.00000 + 118 = 1.00000 + 123 = 1.00000 + 124 = 1.00000 + 126 = 1.00000 + 132 = 1.00000 + 135 = 1.00000 + 137 = 1.00000 + 140 = 1.00000 + 141 = 1.00000 + 149 = 1.00000 + 153 = 1.00000 + 154 = 1.00000 + 155 = 1.00000 + 157 = 1.00000 + 158 = 1.00000 + 159 = 1.00000 + 160 = 1.00000 + 163 = 1.00000 + 166 = 1.00000 + 167 = 1.00000 + 169 = 1.00000 + 171 = 1.00000 + 180 = 1.00000 + 181 = 1.00000 + 184 = 1.00000 + 187 = 1.00000 + 191 = 1.00000 + 195 = 1.00000 + 197 = 1.00000 + 198 = 1.00000 + 202 = 1.00000 + 203 = 1.00000 + 205 = 1.00000 + 207 = 1.00000 + 208 = 1.00000 + 209 = 1.00000 + 210 = 1.00000 + 211 = 1.00000 + 216 = 1.00000 + 220 = 1.00000 + 222 = 1.00000 + 223 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 229 = 1.00000 + 231 = 1.00000 + 238 = 1.00000 + 243 = 1.00000 + 252 = 1.00000 + 253 = 1.00000 + 256 = 1.00000 + 258 = 1.00000 + 265 = 1.00000 + 270 = 1.00000 + 280 = 1.00000 + 285 = 1.00000 + 286 = 1.00000 + 288 = 1.00000 + 294 = 1.00000 + 298 = 1.00000 + 303 = 1.00000 + 304 = 1.00000 + 306 = 1.00000 + 312 = 1.00000 + 315 = 1.00000 + 324 = 1.00000 + 325 = 1.00000 + 328 = 1.00000 + 331 = 1.00000 + 333 = 1.00000 + 342 = 1.00000 + 343 = 1.00000 + 346 = 1.00000 + 349 = 1.00000 + 354 = 1.00000 + 358 = 1.00000 + 360 = 1.00000 + 361 = 1.00000 + 366 = 1.00000 + 370 = 1.00000 + 372 = 1.00000 + 373 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=5 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 4 = 1.00000 + 5 = 1.00000 + 6 = 1.00000 + 8 = 1.00000 + 11 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 16 = 1.00000 + 18 = 1.00000 + 25 = 1.00000 + 26 = 1.00000 + 29 = 1.00000 + 31 = 1.00000 + 36 = 1.00000 + 38 = 1.00000 + 41 = 1.00000 + 42 = 1.00000 + 50 = 1.00000 + 54 = 1.00000 + 55 = 1.00000 + 58 = 1.00000 + 60 = 1.00000 + 67 = 1.00000 + 72 = 1.00000 + 82 = 1.00000 + 83 = 1.00000 + 86 = 1.00000 + 88 = 1.00000 + 93 = 1.00000 + 94 = 1.00000 + 95 = 1.00000 + 96 = 1.00000 + 98 = 1.00000 + 99 = 1.00000 + 100 = 1.00000 + 102 = 1.00000 + 107 = 1.00000 + 111 = 1.00000 + 113 = 1.00000 + 114 = 1.00000 + 118 = 1.00000 + 123 = 1.00000 + 124 = 1.00000 + 126 = 1.00000 + 132 = 1.00000 + 135 = 1.00000 + 137 = 1.00000 + 140 = 1.00000 + 141 = 1.00000 + 149 = 1.00000 + 153 = 1.00000 + 154 = 1.00000 + 155 = 1.00000 + 157 = 1.00000 + 158 = 1.00000 + 159 = 1.00000 + 160 = 1.00000 + 163 = 1.00000 + 166 = 1.00000 + 167 = 1.00000 + 169 = 1.00000 + 171 = 1.00000 + 180 = 1.00000 + 181 = 1.00000 + 184 = 1.00000 + 187 = 1.00000 + 191 = 1.00000 + 195 = 1.00000 + 197 = 1.00000 + 198 = 1.00000 + 202 = 1.00000 + 203 = 1.00000 + 205 = 1.00000 + 207 = 1.00000 + 208 = 1.00000 + 209 = 1.00000 + 210 = 1.00000 + 211 = 1.00000 + 216 = 1.00000 + 220 = 1.00000 + 222 = 1.00000 + 223 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 229 = 1.00000 + 231 = 1.00000 + 238 = 1.00000 + 243 = 1.00000 + 252 = 1.00000 + 253 = 1.00000 + 254 = 1.00000 + 256 = 1.00000 + 257 = 1.00000 + 258 = 1.00000 + 260 = 1.00000 + 263 = 1.00000 + 265 = 1.00000 + 266 = 1.00000 + 269 = 1.00000 + 270 = 1.00000 + 272 = 1.00000 + 275 = 1.00000 + 278 = 1.00000 + 280 = 1.00000 + 285 = 1.00000 + 286 = 1.00000 + 288 = 1.00000 + 294 = 1.00000 + 298 = 1.00000 + 299 = 1.00000 + 302 = 1.00000 + 303 = 1.00000 + 304 = 1.00000 + 305 = 1.00000 + 306 = 1.00000 + 308 = 1.00000 + 311 = 1.00000 + 312 = 1.00000 + 314 = 1.00000 + 315 = 1.00000 + 324 = 1.00000 + 325 = 1.00000 + 328 = 1.00000 + 331 = 1.00000 + 333 = 1.00000 + 335 = 1.00000 + 338 = 1.00000 + 341 = 1.00000 + 342 = 1.00000 + 343 = 1.00000 + 344 = 1.00000 + 346 = 1.00000 + 347 = 1.00000 + 349 = 1.00000 + 350 = 1.00000 + 354 = 1.00000 + 358 = 1.00000 + 360 = 1.00000 + 361 = 1.00000 + 365 = 1.00000 + 366 = 1.00000 + 368 = 1.00000 + 370 = 1.00000 + 371 = 1.00000 + 372 = 1.00000 + 373 = 1.00000 + 374 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=0 + 0 = 1.00000 + 6 = 1.00000 + 12 = 1.00000 + 18 = 1.00000 + 24 = 1.00000 + 36 = 1.00000 + 48 = 1.00000 + 54 = 1.00000 + 60 = 1.00000 + 135 = 1.00000 + 141 = 1.00000 + 147 = 1.00000 + 156 = 1.00000 + 165 = 1.00000 + 171 = 1.00000 + 225 = 1.00000 + 231 = 1.00000 + 237 = 1.00000 + 249 = 1.00000 + 255 = 1.00000 + 261 = 1.00000 + 315 = 1.00000 + 321 = 1.00000 + 330 = 1.00000 + 336 = 1.00000 + 675 = 1.00000 + 681 = 1.00000 + 687 = 1.00000 + 696 = 1.00000 + 705 = 1.00000 + 711 = 1.00000 + 765 = 1.00000 + 771 = 1.00000 + 777 = 1.00000 + 786 = 1.00000 + 795 = 1.00000 + 801 = 1.00000 + 855 = 1.00000 + 861 = 1.00000 + 870 = 1.00000 + 876 = 1.00000 + 915 = 1.00000 + 921 = 1.00000 + 930 = 1.00000 + 936 = 1.00000 + 1215 = 1.00000 + 1221 = 1.00000 + 1227 = 1.00000 + 1239 = 1.00000 + 1245 = 1.00000 + 1251 = 1.00000 + 1305 = 1.00000 + 1311 = 1.00000 + 1320 = 1.00000 + 1326 = 1.00000 + 1365 = 1.00000 + 1371 = 1.00000 + 1377 = 1.00000 + 1389 = 1.00000 + 1395 = 1.00000 + 1401 = 1.00000 + 1455 = 1.00000 + 1461 = 1.00000 + 1470 = 1.00000 + 1476 = 1.00000 + 1755 = 1.00000 + 1761 = 1.00000 + 1770 = 1.00000 + 1776 = 1.00000 + 1815 = 1.00000 + 1821 = 1.00000 + 1830 = 1.00000 + 1836 = 1.00000 + 1875 = 1.00000 + 1881 = 1.00000 + 1890 = 1.00000 + 1896 = 1.00000 + 1935 = 1.00000 + 1941 = 1.00000 + 1950 = 1.00000 + 1956 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=1 + 0 = 1.00000 + 6 = 1.00000 + 12 = 1.00000 + 18 = 1.00000 + 24 = 1.00000 + 36 = 1.00000 + 48 = 1.00000 + 54 = 1.00000 + 60 = 1.00000 + 135 = 1.00000 + 141 = 1.00000 + 147 = 1.00000 + 156 = 1.00000 + 165 = 1.00000 + 171 = 1.00000 + 225 = 1.00000 + 231 = 1.00000 + 237 = 1.00000 + 249 = 1.00000 + 255 = 1.00000 + 261 = 1.00000 + 315 = 1.00000 + 321 = 1.00000 + 330 = 1.00000 + 336 = 1.00000 + 429 = 1.00000 + 432 = 1.00000 + 435 = 1.00000 + 438 = 1.00000 + 441 = 1.00000 + 450 = 1.00000 + 459 = 1.00000 + 462 = 1.00000 + 465 = 1.00000 + 519 = 1.00000 + 522 = 1.00000 + 525 = 1.00000 + 531 = 1.00000 + 537 = 1.00000 + 540 = 1.00000 + 591 = 1.00000 + 594 = 1.00000 + 597 = 1.00000 + 606 = 1.00000 + 609 = 1.00000 + 612 = 1.00000 + 651 = 1.00000 + 654 = 1.00000 + 660 = 1.00000 + 663 = 1.00000 + 675 = 1.00000 + 681 = 1.00000 + 687 = 1.00000 + 696 = 1.00000 + 705 = 1.00000 + 711 = 1.00000 + 765 = 1.00000 + 771 = 1.00000 + 777 = 1.00000 + 786 = 1.00000 + 795 = 1.00000 + 801 = 1.00000 + 855 = 1.00000 + 861 = 1.00000 + 870 = 1.00000 + 876 = 1.00000 + 915 = 1.00000 + 921 = 1.00000 + 930 = 1.00000 + 936 = 1.00000 + 1011 = 1.00000 + 1014 = 1.00000 + 1017 = 1.00000 + 1023 = 1.00000 + 1029 = 1.00000 + 1032 = 1.00000 + 1083 = 1.00000 + 1086 = 1.00000 + 1089 = 1.00000 + 1095 = 1.00000 + 1101 = 1.00000 + 1104 = 1.00000 + 1143 = 1.00000 + 1146 = 1.00000 + 1152 = 1.00000 + 1155 = 1.00000 + 1191 = 1.00000 + 1194 = 1.00000 + 1200 = 1.00000 + 1203 = 1.00000 + 1215 = 1.00000 + 1221 = 1.00000 + 1227 = 1.00000 + 1239 = 1.00000 + 1245 = 1.00000 + 1251 = 1.00000 + 1305 = 1.00000 + 1311 = 1.00000 + 1320 = 1.00000 + 1326 = 1.00000 + 1365 = 1.00000 + 1371 = 1.00000 + 1377 = 1.00000 + 1389 = 1.00000 + 1395 = 1.00000 + 1401 = 1.00000 + 1455 = 1.00000 + 1461 = 1.00000 + 1470 = 1.00000 + 1476 = 1.00000 + 1551 = 1.00000 + 1554 = 1.00000 + 1557 = 1.00000 + 1566 = 1.00000 + 1569 = 1.00000 + 1572 = 1.00000 + 1611 = 1.00000 + 1614 = 1.00000 + 1620 = 1.00000 + 1623 = 1.00000 + 1671 = 1.00000 + 1674 = 1.00000 + 1677 = 1.00000 + 1686 = 1.00000 + 1689 = 1.00000 + 1692 = 1.00000 + 1731 = 1.00000 + 1734 = 1.00000 + 1740 = 1.00000 + 1743 = 1.00000 + 1755 = 1.00000 + 1761 = 1.00000 + 1770 = 1.00000 + 1776 = 1.00000 + 1815 = 1.00000 + 1821 = 1.00000 + 1830 = 1.00000 + 1836 = 1.00000 + 1875 = 1.00000 + 1881 = 1.00000 + 1890 = 1.00000 + 1896 = 1.00000 + 1935 = 1.00000 + 1941 = 1.00000 + 1950 = 1.00000 + 1956 = 1.00000 + 2019 = 1.00000 + 2022 = 1.00000 + 2028 = 1.00000 + 2031 = 1.00000 + 2067 = 1.00000 + 2070 = 1.00000 + 2076 = 1.00000 + 2079 = 1.00000 + 2115 = 1.00000 + 2118 = 1.00000 + 2124 = 1.00000 + 2127 = 1.00000 + 2163 = 1.00000 + 2166 = 1.00000 + 2172 = 1.00000 + 2175 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=2 + 0 = 1.00000 + 1 = 1.00000 + 4 = 1.00000 + 6 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 16 = 1.00000 + 18 = 1.00000 + 24 = 1.00000 + 31 = 1.00000 + 36 = 1.00000 + 43 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 52 = 1.00000 + 54 = 1.00000 + 60 = 1.00000 + 67 = 1.00000 + 82 = 1.00000 + 88 = 1.00000 + 97 = 1.00000 + 106 = 1.00000 + 112 = 1.00000 + 121 = 1.00000 + 135 = 1.00000 + 141 = 1.00000 + 147 = 1.00000 + 156 = 1.00000 + 165 = 1.00000 + 171 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 229 = 1.00000 + 231 = 1.00000 + 237 = 1.00000 + 244 = 1.00000 + 249 = 1.00000 + 250 = 1.00000 + 253 = 1.00000 + 255 = 1.00000 + 261 = 1.00000 + 268 = 1.00000 + 280 = 1.00000 + 289 = 1.00000 + 295 = 1.00000 + 304 = 1.00000 + 315 = 1.00000 + 321 = 1.00000 + 330 = 1.00000 + 336 = 1.00000 + 376 = 1.00000 + 382 = 1.00000 + 391 = 1.00000 + 400 = 1.00000 + 406 = 1.00000 + 415 = 1.00000 + 429 = 1.00000 + 430 = 1.00000 + 432 = 1.00000 + 435 = 1.00000 + 436 = 1.00000 + 438 = 1.00000 + 441 = 1.00000 + 445 = 1.00000 + 450 = 1.00000 + 454 = 1.00000 + 459 = 1.00000 + 460 = 1.00000 + 462 = 1.00000 + 465 = 1.00000 + 469 = 1.00000 + 519 = 1.00000 + 522 = 1.00000 + 525 = 1.00000 + 531 = 1.00000 + 537 = 1.00000 + 540 = 1.00000 + 556 = 1.00000 + 565 = 1.00000 + 571 = 1.00000 + 580 = 1.00000 + 591 = 1.00000 + 592 = 1.00000 + 594 = 1.00000 + 597 = 1.00000 + 601 = 1.00000 + 606 = 1.00000 + 607 = 1.00000 + 609 = 1.00000 + 612 = 1.00000 + 616 = 1.00000 + 651 = 1.00000 + 654 = 1.00000 + 660 = 1.00000 + 663 = 1.00000 + 675 = 1.00000 + 681 = 1.00000 + 687 = 1.00000 + 696 = 1.00000 + 705 = 1.00000 + 711 = 1.00000 + 765 = 1.00000 + 771 = 1.00000 + 777 = 1.00000 + 786 = 1.00000 + 795 = 1.00000 + 801 = 1.00000 + 855 = 1.00000 + 861 = 1.00000 + 870 = 1.00000 + 876 = 1.00000 + 915 = 1.00000 + 921 = 1.00000 + 930 = 1.00000 + 936 = 1.00000 + 1011 = 1.00000 + 1014 = 1.00000 + 1017 = 1.00000 + 1023 = 1.00000 + 1029 = 1.00000 + 1032 = 1.00000 + 1083 = 1.00000 + 1086 = 1.00000 + 1089 = 1.00000 + 1095 = 1.00000 + 1101 = 1.00000 + 1104 = 1.00000 + 1143 = 1.00000 + 1146 = 1.00000 + 1152 = 1.00000 + 1155 = 1.00000 + 1191 = 1.00000 + 1194 = 1.00000 + 1200 = 1.00000 + 1203 = 1.00000 + 1215 = 1.00000 + 1216 = 1.00000 + 1219 = 1.00000 + 1221 = 1.00000 + 1227 = 1.00000 + 1234 = 1.00000 + 1239 = 1.00000 + 1240 = 1.00000 + 1243 = 1.00000 + 1245 = 1.00000 + 1251 = 1.00000 + 1258 = 1.00000 + 1270 = 1.00000 + 1279 = 1.00000 + 1285 = 1.00000 + 1294 = 1.00000 + 1305 = 1.00000 + 1311 = 1.00000 + 1320 = 1.00000 + 1326 = 1.00000 + 1365 = 1.00000 + 1366 = 1.00000 + 1369 = 1.00000 + 1371 = 1.00000 + 1377 = 1.00000 + 1384 = 1.00000 + 1389 = 1.00000 + 1390 = 1.00000 + 1393 = 1.00000 + 1395 = 1.00000 + 1401 = 1.00000 + 1408 = 1.00000 + 1420 = 1.00000 + 1429 = 1.00000 + 1435 = 1.00000 + 1444 = 1.00000 + 1455 = 1.00000 + 1461 = 1.00000 + 1470 = 1.00000 + 1476 = 1.00000 + 1516 = 1.00000 + 1525 = 1.00000 + 1531 = 1.00000 + 1540 = 1.00000 + 1551 = 1.00000 + 1552 = 1.00000 + 1554 = 1.00000 + 1557 = 1.00000 + 1561 = 1.00000 + 1566 = 1.00000 + 1567 = 1.00000 + 1569 = 1.00000 + 1572 = 1.00000 + 1576 = 1.00000 + 1611 = 1.00000 + 1614 = 1.00000 + 1620 = 1.00000 + 1623 = 1.00000 + 1636 = 1.00000 + 1645 = 1.00000 + 1651 = 1.00000 + 1660 = 1.00000 + 1671 = 1.00000 + 1672 = 1.00000 + 1674 = 1.00000 + 1677 = 1.00000 + 1681 = 1.00000 + 1686 = 1.00000 + 1687 = 1.00000 + 1689 = 1.00000 + 1692 = 1.00000 + 1696 = 1.00000 + 1731 = 1.00000 + 1734 = 1.00000 + 1740 = 1.00000 + 1743 = 1.00000 + 1755 = 1.00000 + 1761 = 1.00000 + 1770 = 1.00000 + 1776 = 1.00000 + 1815 = 1.00000 + 1821 = 1.00000 + 1830 = 1.00000 + 1836 = 1.00000 + 1875 = 1.00000 + 1881 = 1.00000 + 1890 = 1.00000 + 1896 = 1.00000 + 1935 = 1.00000 + 1941 = 1.00000 + 1950 = 1.00000 + 1956 = 1.00000 + 2019 = 1.00000 + 2022 = 1.00000 + 2028 = 1.00000 + 2031 = 1.00000 + 2067 = 1.00000 + 2070 = 1.00000 + 2076 = 1.00000 + 2079 = 1.00000 + 2115 = 1.00000 + 2118 = 1.00000 + 2124 = 1.00000 + 2127 = 1.00000 + 2163 = 1.00000 + 2166 = 1.00000 + 2172 = 1.00000 + 2175 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=3 + 0 = 1.00000 + 1 = 1.00000 + 4 = 1.00000 + 6 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 16 = 1.00000 + 18 = 1.00000 + 24 = 1.00000 + 31 = 1.00000 + 36 = 1.00000 + 43 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 52 = 1.00000 + 54 = 1.00000 + 60 = 1.00000 + 67 = 1.00000 + 82 = 1.00000 + 88 = 1.00000 + 97 = 1.00000 + 106 = 1.00000 + 112 = 1.00000 + 121 = 1.00000 + 135 = 1.00000 + 141 = 1.00000 + 147 = 1.00000 + 156 = 1.00000 + 165 = 1.00000 + 171 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 229 = 1.00000 + 231 = 1.00000 + 237 = 1.00000 + 244 = 1.00000 + 249 = 1.00000 + 250 = 1.00000 + 253 = 1.00000 + 255 = 1.00000 + 261 = 1.00000 + 268 = 1.00000 + 280 = 1.00000 + 289 = 1.00000 + 295 = 1.00000 + 304 = 1.00000 + 315 = 1.00000 + 321 = 1.00000 + 330 = 1.00000 + 336 = 1.00000 + 376 = 1.00000 + 382 = 1.00000 + 391 = 1.00000 + 400 = 1.00000 + 406 = 1.00000 + 415 = 1.00000 + 429 = 1.00000 + 430 = 1.00000 + 432 = 1.00000 + 435 = 1.00000 + 436 = 1.00000 + 438 = 1.00000 + 441 = 1.00000 + 445 = 1.00000 + 450 = 1.00000 + 454 = 1.00000 + 459 = 1.00000 + 460 = 1.00000 + 462 = 1.00000 + 465 = 1.00000 + 469 = 1.00000 + 519 = 1.00000 + 522 = 1.00000 + 525 = 1.00000 + 531 = 1.00000 + 537 = 1.00000 + 540 = 1.00000 + 556 = 1.00000 + 565 = 1.00000 + 571 = 1.00000 + 580 = 1.00000 + 591 = 1.00000 + 592 = 1.00000 + 594 = 1.00000 + 597 = 1.00000 + 601 = 1.00000 + 606 = 1.00000 + 607 = 1.00000 + 609 = 1.00000 + 612 = 1.00000 + 616 = 1.00000 + 651 = 1.00000 + 654 = 1.00000 + 660 = 1.00000 + 663 = 1.00000 + 675 = 1.00000 + 681 = 1.00000 + 687 = 1.00000 + 696 = 1.00000 + 705 = 1.00000 + 711 = 1.00000 + 765 = 1.00000 + 766 = 1.00000 + 769 = 1.00000 + 771 = 1.00000 + 772 = 1.00000 + 775 = 1.00000 + 777 = 1.00000 + 784 = 1.00000 + 786 = 1.00000 + 793 = 1.00000 + 795 = 1.00000 + 796 = 1.00000 + 799 = 1.00000 + 801 = 1.00000 + 808 = 1.00000 + 820 = 1.00000 + 823 = 1.00000 + 829 = 1.00000 + 835 = 1.00000 + 838 = 1.00000 + 844 = 1.00000 + 855 = 1.00000 + 861 = 1.00000 + 870 = 1.00000 + 876 = 1.00000 + 915 = 1.00000 + 916 = 1.00000 + 919 = 1.00000 + 921 = 1.00000 + 928 = 1.00000 + 930 = 1.00000 + 931 = 1.00000 + 934 = 1.00000 + 936 = 1.00000 + 943 = 1.00000 + 952 = 1.00000 + 958 = 1.00000 + 961 = 1.00000 + 967 = 1.00000 + 1011 = 1.00000 + 1014 = 1.00000 + 1017 = 1.00000 + 1023 = 1.00000 + 1029 = 1.00000 + 1032 = 1.00000 + 1048 = 1.00000 + 1051 = 1.00000 + 1057 = 1.00000 + 1063 = 1.00000 + 1066 = 1.00000 + 1072 = 1.00000 + 1083 = 1.00000 + 1084 = 1.00000 + 1086 = 1.00000 + 1087 = 1.00000 + 1089 = 1.00000 + 1093 = 1.00000 + 1095 = 1.00000 + 1099 = 1.00000 + 1101 = 1.00000 + 1102 = 1.00000 + 1104 = 1.00000 + 1108 = 1.00000 + 1143 = 1.00000 + 1146 = 1.00000 + 1152 = 1.00000 + 1155 = 1.00000 + 1168 = 1.00000 + 1174 = 1.00000 + 1177 = 1.00000 + 1183 = 1.00000 + 1191 = 1.00000 + 1192 = 1.00000 + 1194 = 1.00000 + 1198 = 1.00000 + 1200 = 1.00000 + 1201 = 1.00000 + 1203 = 1.00000 + 1207 = 1.00000 + 1215 = 1.00000 + 1216 = 1.00000 + 1219 = 1.00000 + 1221 = 1.00000 + 1227 = 1.00000 + 1234 = 1.00000 + 1239 = 1.00000 + 1240 = 1.00000 + 1243 = 1.00000 + 1245 = 1.00000 + 1251 = 1.00000 + 1258 = 1.00000 + 1270 = 1.00000 + 1279 = 1.00000 + 1285 = 1.00000 + 1294 = 1.00000 + 1305 = 1.00000 + 1311 = 1.00000 + 1320 = 1.00000 + 1326 = 1.00000 + 1365 = 1.00000 + 1366 = 1.00000 + 1369 = 1.00000 + 1371 = 1.00000 + 1377 = 1.00000 + 1384 = 1.00000 + 1389 = 1.00000 + 1390 = 1.00000 + 1393 = 1.00000 + 1395 = 1.00000 + 1401 = 1.00000 + 1408 = 1.00000 + 1420 = 1.00000 + 1429 = 1.00000 + 1435 = 1.00000 + 1444 = 1.00000 + 1455 = 1.00000 + 1461 = 1.00000 + 1470 = 1.00000 + 1476 = 1.00000 + 1516 = 1.00000 + 1525 = 1.00000 + 1531 = 1.00000 + 1540 = 1.00000 + 1551 = 1.00000 + 1552 = 1.00000 + 1554 = 1.00000 + 1557 = 1.00000 + 1561 = 1.00000 + 1566 = 1.00000 + 1567 = 1.00000 + 1569 = 1.00000 + 1572 = 1.00000 + 1576 = 1.00000 + 1611 = 1.00000 + 1614 = 1.00000 + 1620 = 1.00000 + 1623 = 1.00000 + 1636 = 1.00000 + 1645 = 1.00000 + 1651 = 1.00000 + 1660 = 1.00000 + 1671 = 1.00000 + 1672 = 1.00000 + 1674 = 1.00000 + 1677 = 1.00000 + 1681 = 1.00000 + 1686 = 1.00000 + 1687 = 1.00000 + 1689 = 1.00000 + 1692 = 1.00000 + 1696 = 1.00000 + 1731 = 1.00000 + 1734 = 1.00000 + 1740 = 1.00000 + 1743 = 1.00000 + 1755 = 1.00000 + 1761 = 1.00000 + 1770 = 1.00000 + 1776 = 1.00000 + 1815 = 1.00000 + 1816 = 1.00000 + 1819 = 1.00000 + 1821 = 1.00000 + 1828 = 1.00000 + 1830 = 1.00000 + 1831 = 1.00000 + 1834 = 1.00000 + 1836 = 1.00000 + 1843 = 1.00000 + 1852 = 1.00000 + 1858 = 1.00000 + 1861 = 1.00000 + 1867 = 1.00000 + 1875 = 1.00000 + 1881 = 1.00000 + 1890 = 1.00000 + 1896 = 1.00000 + 1935 = 1.00000 + 1936 = 1.00000 + 1939 = 1.00000 + 1941 = 1.00000 + 1948 = 1.00000 + 1950 = 1.00000 + 1951 = 1.00000 + 1954 = 1.00000 + 1956 = 1.00000 + 1963 = 1.00000 + 1972 = 1.00000 + 1978 = 1.00000 + 1981 = 1.00000 + 1987 = 1.00000 + 2019 = 1.00000 + 2022 = 1.00000 + 2028 = 1.00000 + 2031 = 1.00000 + 2044 = 1.00000 + 2050 = 1.00000 + 2053 = 1.00000 + 2059 = 1.00000 + 2067 = 1.00000 + 2068 = 1.00000 + 2070 = 1.00000 + 2074 = 1.00000 + 2076 = 1.00000 + 2077 = 1.00000 + 2079 = 1.00000 + 2083 = 1.00000 + 2115 = 1.00000 + 2118 = 1.00000 + 2124 = 1.00000 + 2127 = 1.00000 + 2140 = 1.00000 + 2146 = 1.00000 + 2149 = 1.00000 + 2155 = 1.00000 + 2163 = 1.00000 + 2164 = 1.00000 + 2166 = 1.00000 + 2170 = 1.00000 + 2172 = 1.00000 + 2173 = 1.00000 + 2175 = 1.00000 + 2179 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=4 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 4 = 1.00000 + 5 = 1.00000 + 6 = 1.00000 + 8 = 1.00000 + 11 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 16 = 1.00000 + 18 = 1.00000 + 24 = 1.00000 + 26 = 1.00000 + 29 = 1.00000 + 31 = 1.00000 + 32 = 1.00000 + 35 = 1.00000 + 36 = 1.00000 + 43 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 52 = 1.00000 + 54 = 1.00000 + 60 = 1.00000 + 67 = 1.00000 + 74 = 1.00000 + 82 = 1.00000 + 83 = 1.00000 + 86 = 1.00000 + 88 = 1.00000 + 95 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 101 = 1.00000 + 106 = 1.00000 + 112 = 1.00000 + 121 = 1.00000 + 128 = 1.00000 + 135 = 1.00000 + 137 = 1.00000 + 140 = 1.00000 + 141 = 1.00000 + 147 = 1.00000 + 149 = 1.00000 + 152 = 1.00000 + 155 = 1.00000 + 156 = 1.00000 + 165 = 1.00000 + 171 = 1.00000 + 182 = 1.00000 + 191 = 1.00000 + 197 = 1.00000 + 200 = 1.00000 + 218 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 229 = 1.00000 + 231 = 1.00000 + 237 = 1.00000 + 244 = 1.00000 + 249 = 1.00000 + 250 = 1.00000 + 253 = 1.00000 + 255 = 1.00000 + 261 = 1.00000 + 268 = 1.00000 + 280 = 1.00000 + 289 = 1.00000 + 295 = 1.00000 + 304 = 1.00000 + 315 = 1.00000 + 321 = 1.00000 + 330 = 1.00000 + 336 = 1.00000 + 376 = 1.00000 + 377 = 1.00000 + 380 = 1.00000 + 382 = 1.00000 + 389 = 1.00000 + 391 = 1.00000 + 392 = 1.00000 + 395 = 1.00000 + 400 = 1.00000 + 406 = 1.00000 + 415 = 1.00000 + 422 = 1.00000 + 429 = 1.00000 + 430 = 1.00000 + 431 = 1.00000 + 432 = 1.00000 + 434 = 1.00000 + 435 = 1.00000 + 436 = 1.00000 + 438 = 1.00000 + 441 = 1.00000 + 443 = 1.00000 + 445 = 1.00000 + 446 = 1.00000 + 449 = 1.00000 + 450 = 1.00000 + 454 = 1.00000 + 459 = 1.00000 + 460 = 1.00000 + 462 = 1.00000 + 465 = 1.00000 + 469 = 1.00000 + 476 = 1.00000 + 485 = 1.00000 + 491 = 1.00000 + 494 = 1.00000 + 512 = 1.00000 + 519 = 1.00000 + 521 = 1.00000 + 522 = 1.00000 + 525 = 1.00000 + 527 = 1.00000 + 530 = 1.00000 + 531 = 1.00000 + 537 = 1.00000 + 540 = 1.00000 + 548 = 1.00000 + 556 = 1.00000 + 565 = 1.00000 + 571 = 1.00000 + 580 = 1.00000 + 591 = 1.00000 + 592 = 1.00000 + 594 = 1.00000 + 597 = 1.00000 + 601 = 1.00000 + 606 = 1.00000 + 607 = 1.00000 + 609 = 1.00000 + 612 = 1.00000 + 616 = 1.00000 + 651 = 1.00000 + 654 = 1.00000 + 660 = 1.00000 + 663 = 1.00000 + 675 = 1.00000 + 677 = 1.00000 + 680 = 1.00000 + 681 = 1.00000 + 687 = 1.00000 + 689 = 1.00000 + 692 = 1.00000 + 695 = 1.00000 + 696 = 1.00000 + 705 = 1.00000 + 711 = 1.00000 + 722 = 1.00000 + 731 = 1.00000 + 737 = 1.00000 + 740 = 1.00000 + 758 = 1.00000 + 765 = 1.00000 + 766 = 1.00000 + 767 = 1.00000 + 769 = 1.00000 + 770 = 1.00000 + 771 = 1.00000 + 772 = 1.00000 + 775 = 1.00000 + 777 = 1.00000 + 779 = 1.00000 + 782 = 1.00000 + 784 = 1.00000 + 785 = 1.00000 + 786 = 1.00000 + 793 = 1.00000 + 795 = 1.00000 + 796 = 1.00000 + 799 = 1.00000 + 801 = 1.00000 + 808 = 1.00000 + 812 = 1.00000 + 820 = 1.00000 + 821 = 1.00000 + 823 = 1.00000 + 827 = 1.00000 + 829 = 1.00000 + 830 = 1.00000 + 835 = 1.00000 + 838 = 1.00000 + 844 = 1.00000 + 848 = 1.00000 + 855 = 1.00000 + 861 = 1.00000 + 870 = 1.00000 + 876 = 1.00000 + 915 = 1.00000 + 916 = 1.00000 + 919 = 1.00000 + 921 = 1.00000 + 928 = 1.00000 + 930 = 1.00000 + 931 = 1.00000 + 934 = 1.00000 + 936 = 1.00000 + 943 = 1.00000 + 952 = 1.00000 + 958 = 1.00000 + 961 = 1.00000 + 967 = 1.00000 + 977 = 1.00000 + 983 = 1.00000 + 986 = 1.00000 + 1004 = 1.00000 + 1011 = 1.00000 + 1013 = 1.00000 + 1014 = 1.00000 + 1017 = 1.00000 + 1019 = 1.00000 + 1022 = 1.00000 + 1023 = 1.00000 + 1029 = 1.00000 + 1032 = 1.00000 + 1040 = 1.00000 + 1048 = 1.00000 + 1049 = 1.00000 + 1051 = 1.00000 + 1055 = 1.00000 + 1057 = 1.00000 + 1058 = 1.00000 + 1063 = 1.00000 + 1066 = 1.00000 + 1072 = 1.00000 + 1076 = 1.00000 + 1083 = 1.00000 + 1084 = 1.00000 + 1085 = 1.00000 + 1086 = 1.00000 + 1087 = 1.00000 + 1089 = 1.00000 + 1091 = 1.00000 + 1093 = 1.00000 + 1094 = 1.00000 + 1095 = 1.00000 + 1099 = 1.00000 + 1101 = 1.00000 + 1102 = 1.00000 + 1104 = 1.00000 + 1108 = 1.00000 + 1112 = 1.00000 + 1143 = 1.00000 + 1146 = 1.00000 + 1152 = 1.00000 + 1155 = 1.00000 + 1168 = 1.00000 + 1174 = 1.00000 + 1177 = 1.00000 + 1183 = 1.00000 + 1191 = 1.00000 + 1192 = 1.00000 + 1194 = 1.00000 + 1198 = 1.00000 + 1200 = 1.00000 + 1201 = 1.00000 + 1203 = 1.00000 + 1207 = 1.00000 + 1215 = 1.00000 + 1216 = 1.00000 + 1219 = 1.00000 + 1221 = 1.00000 + 1227 = 1.00000 + 1234 = 1.00000 + 1239 = 1.00000 + 1240 = 1.00000 + 1243 = 1.00000 + 1245 = 1.00000 + 1251 = 1.00000 + 1258 = 1.00000 + 1270 = 1.00000 + 1279 = 1.00000 + 1285 = 1.00000 + 1294 = 1.00000 + 1305 = 1.00000 + 1311 = 1.00000 + 1320 = 1.00000 + 1326 = 1.00000 + 1365 = 1.00000 + 1366 = 1.00000 + 1369 = 1.00000 + 1371 = 1.00000 + 1377 = 1.00000 + 1384 = 1.00000 + 1389 = 1.00000 + 1390 = 1.00000 + 1393 = 1.00000 + 1395 = 1.00000 + 1401 = 1.00000 + 1408 = 1.00000 + 1420 = 1.00000 + 1429 = 1.00000 + 1435 = 1.00000 + 1444 = 1.00000 + 1455 = 1.00000 + 1461 = 1.00000 + 1470 = 1.00000 + 1476 = 1.00000 + 1516 = 1.00000 + 1525 = 1.00000 + 1531 = 1.00000 + 1540 = 1.00000 + 1551 = 1.00000 + 1552 = 1.00000 + 1554 = 1.00000 + 1557 = 1.00000 + 1561 = 1.00000 + 1566 = 1.00000 + 1567 = 1.00000 + 1569 = 1.00000 + 1572 = 1.00000 + 1576 = 1.00000 + 1611 = 1.00000 + 1614 = 1.00000 + 1620 = 1.00000 + 1623 = 1.00000 + 1636 = 1.00000 + 1645 = 1.00000 + 1651 = 1.00000 + 1660 = 1.00000 + 1671 = 1.00000 + 1672 = 1.00000 + 1674 = 1.00000 + 1677 = 1.00000 + 1681 = 1.00000 + 1686 = 1.00000 + 1687 = 1.00000 + 1689 = 1.00000 + 1692 = 1.00000 + 1696 = 1.00000 + 1731 = 1.00000 + 1734 = 1.00000 + 1740 = 1.00000 + 1743 = 1.00000 + 1755 = 1.00000 + 1761 = 1.00000 + 1770 = 1.00000 + 1776 = 1.00000 + 1815 = 1.00000 + 1816 = 1.00000 + 1819 = 1.00000 + 1821 = 1.00000 + 1828 = 1.00000 + 1830 = 1.00000 + 1831 = 1.00000 + 1834 = 1.00000 + 1836 = 1.00000 + 1843 = 1.00000 + 1852 = 1.00000 + 1858 = 1.00000 + 1861 = 1.00000 + 1867 = 1.00000 + 1875 = 1.00000 + 1881 = 1.00000 + 1890 = 1.00000 + 1896 = 1.00000 + 1935 = 1.00000 + 1936 = 1.00000 + 1939 = 1.00000 + 1941 = 1.00000 + 1948 = 1.00000 + 1950 = 1.00000 + 1951 = 1.00000 + 1954 = 1.00000 + 1956 = 1.00000 + 1963 = 1.00000 + 1972 = 1.00000 + 1978 = 1.00000 + 1981 = 1.00000 + 1987 = 1.00000 + 2019 = 1.00000 + 2022 = 1.00000 + 2028 = 1.00000 + 2031 = 1.00000 + 2044 = 1.00000 + 2050 = 1.00000 + 2053 = 1.00000 + 2059 = 1.00000 + 2067 = 1.00000 + 2068 = 1.00000 + 2070 = 1.00000 + 2074 = 1.00000 + 2076 = 1.00000 + 2077 = 1.00000 + 2079 = 1.00000 + 2083 = 1.00000 + 2115 = 1.00000 + 2118 = 1.00000 + 2124 = 1.00000 + 2127 = 1.00000 + 2140 = 1.00000 + 2146 = 1.00000 + 2149 = 1.00000 + 2155 = 1.00000 + 2163 = 1.00000 + 2164 = 1.00000 + 2166 = 1.00000 + 2170 = 1.00000 + 2172 = 1.00000 + 2173 = 1.00000 + 2175 = 1.00000 + 2179 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=5 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 4 = 1.00000 + 5 = 1.00000 + 6 = 1.00000 + 8 = 1.00000 + 11 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 16 = 1.00000 + 18 = 1.00000 + 24 = 1.00000 + 26 = 1.00000 + 29 = 1.00000 + 31 = 1.00000 + 32 = 1.00000 + 35 = 1.00000 + 36 = 1.00000 + 43 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 52 = 1.00000 + 54 = 1.00000 + 60 = 1.00000 + 67 = 1.00000 + 74 = 1.00000 + 82 = 1.00000 + 83 = 1.00000 + 86 = 1.00000 + 88 = 1.00000 + 95 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 101 = 1.00000 + 106 = 1.00000 + 112 = 1.00000 + 121 = 1.00000 + 128 = 1.00000 + 135 = 1.00000 + 137 = 1.00000 + 140 = 1.00000 + 141 = 1.00000 + 147 = 1.00000 + 149 = 1.00000 + 152 = 1.00000 + 155 = 1.00000 + 156 = 1.00000 + 165 = 1.00000 + 171 = 1.00000 + 182 = 1.00000 + 191 = 1.00000 + 197 = 1.00000 + 200 = 1.00000 + 218 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 229 = 1.00000 + 231 = 1.00000 + 237 = 1.00000 + 244 = 1.00000 + 249 = 1.00000 + 250 = 1.00000 + 253 = 1.00000 + 255 = 1.00000 + 261 = 1.00000 + 268 = 1.00000 + 280 = 1.00000 + 289 = 1.00000 + 295 = 1.00000 + 304 = 1.00000 + 315 = 1.00000 + 321 = 1.00000 + 330 = 1.00000 + 336 = 1.00000 + 376 = 1.00000 + 377 = 1.00000 + 380 = 1.00000 + 382 = 1.00000 + 389 = 1.00000 + 391 = 1.00000 + 392 = 1.00000 + 395 = 1.00000 + 400 = 1.00000 + 406 = 1.00000 + 415 = 1.00000 + 422 = 1.00000 + 429 = 1.00000 + 430 = 1.00000 + 431 = 1.00000 + 432 = 1.00000 + 434 = 1.00000 + 435 = 1.00000 + 436 = 1.00000 + 438 = 1.00000 + 441 = 1.00000 + 443 = 1.00000 + 445 = 1.00000 + 446 = 1.00000 + 449 = 1.00000 + 450 = 1.00000 + 454 = 1.00000 + 459 = 1.00000 + 460 = 1.00000 + 462 = 1.00000 + 465 = 1.00000 + 469 = 1.00000 + 476 = 1.00000 + 485 = 1.00000 + 491 = 1.00000 + 494 = 1.00000 + 512 = 1.00000 + 519 = 1.00000 + 521 = 1.00000 + 522 = 1.00000 + 525 = 1.00000 + 527 = 1.00000 + 530 = 1.00000 + 531 = 1.00000 + 537 = 1.00000 + 540 = 1.00000 + 548 = 1.00000 + 556 = 1.00000 + 565 = 1.00000 + 571 = 1.00000 + 580 = 1.00000 + 591 = 1.00000 + 592 = 1.00000 + 594 = 1.00000 + 597 = 1.00000 + 601 = 1.00000 + 606 = 1.00000 + 607 = 1.00000 + 609 = 1.00000 + 612 = 1.00000 + 616 = 1.00000 + 651 = 1.00000 + 654 = 1.00000 + 660 = 1.00000 + 663 = 1.00000 + 675 = 1.00000 + 677 = 1.00000 + 680 = 1.00000 + 681 = 1.00000 + 687 = 1.00000 + 689 = 1.00000 + 692 = 1.00000 + 695 = 1.00000 + 696 = 1.00000 + 705 = 1.00000 + 711 = 1.00000 + 722 = 1.00000 + 731 = 1.00000 + 737 = 1.00000 + 740 = 1.00000 + 758 = 1.00000 + 765 = 1.00000 + 766 = 1.00000 + 767 = 1.00000 + 769 = 1.00000 + 770 = 1.00000 + 771 = 1.00000 + 772 = 1.00000 + 775 = 1.00000 + 777 = 1.00000 + 779 = 1.00000 + 782 = 1.00000 + 784 = 1.00000 + 785 = 1.00000 + 786 = 1.00000 + 793 = 1.00000 + 795 = 1.00000 + 796 = 1.00000 + 799 = 1.00000 + 801 = 1.00000 + 808 = 1.00000 + 812 = 1.00000 + 820 = 1.00000 + 821 = 1.00000 + 823 = 1.00000 + 827 = 1.00000 + 829 = 1.00000 + 830 = 1.00000 + 835 = 1.00000 + 838 = 1.00000 + 844 = 1.00000 + 848 = 1.00000 + 855 = 1.00000 + 861 = 1.00000 + 870 = 1.00000 + 876 = 1.00000 + 915 = 1.00000 + 916 = 1.00000 + 919 = 1.00000 + 921 = 1.00000 + 928 = 1.00000 + 930 = 1.00000 + 931 = 1.00000 + 934 = 1.00000 + 936 = 1.00000 + 943 = 1.00000 + 952 = 1.00000 + 958 = 1.00000 + 961 = 1.00000 + 967 = 1.00000 + 977 = 1.00000 + 983 = 1.00000 + 986 = 1.00000 + 1004 = 1.00000 + 1011 = 1.00000 + 1013 = 1.00000 + 1014 = 1.00000 + 1017 = 1.00000 + 1019 = 1.00000 + 1022 = 1.00000 + 1023 = 1.00000 + 1029 = 1.00000 + 1032 = 1.00000 + 1040 = 1.00000 + 1048 = 1.00000 + 1049 = 1.00000 + 1051 = 1.00000 + 1055 = 1.00000 + 1057 = 1.00000 + 1058 = 1.00000 + 1063 = 1.00000 + 1066 = 1.00000 + 1072 = 1.00000 + 1076 = 1.00000 + 1083 = 1.00000 + 1084 = 1.00000 + 1085 = 1.00000 + 1086 = 1.00000 + 1087 = 1.00000 + 1089 = 1.00000 + 1091 = 1.00000 + 1093 = 1.00000 + 1094 = 1.00000 + 1095 = 1.00000 + 1099 = 1.00000 + 1101 = 1.00000 + 1102 = 1.00000 + 1104 = 1.00000 + 1108 = 1.00000 + 1112 = 1.00000 + 1143 = 1.00000 + 1146 = 1.00000 + 1152 = 1.00000 + 1155 = 1.00000 + 1168 = 1.00000 + 1174 = 1.00000 + 1177 = 1.00000 + 1183 = 1.00000 + 1191 = 1.00000 + 1192 = 1.00000 + 1194 = 1.00000 + 1198 = 1.00000 + 1200 = 1.00000 + 1201 = 1.00000 + 1203 = 1.00000 + 1207 = 1.00000 + 1215 = 1.00000 + 1216 = 1.00000 + 1219 = 1.00000 + 1221 = 1.00000 + 1227 = 1.00000 + 1234 = 1.00000 + 1239 = 1.00000 + 1240 = 1.00000 + 1243 = 1.00000 + 1245 = 1.00000 + 1251 = 1.00000 + 1258 = 1.00000 + 1270 = 1.00000 + 1279 = 1.00000 + 1285 = 1.00000 + 1294 = 1.00000 + 1305 = 1.00000 + 1311 = 1.00000 + 1320 = 1.00000 + 1326 = 1.00000 + 1365 = 1.00000 + 1366 = 1.00000 + 1367 = 1.00000 + 1369 = 1.00000 + 1370 = 1.00000 + 1371 = 1.00000 + 1373 = 1.00000 + 1376 = 1.00000 + 1377 = 1.00000 + 1379 = 1.00000 + 1382 = 1.00000 + 1384 = 1.00000 + 1385 = 1.00000 + 1388 = 1.00000 + 1389 = 1.00000 + 1390 = 1.00000 + 1393 = 1.00000 + 1395 = 1.00000 + 1401 = 1.00000 + 1408 = 1.00000 + 1415 = 1.00000 + 1420 = 1.00000 + 1421 = 1.00000 + 1424 = 1.00000 + 1427 = 1.00000 + 1429 = 1.00000 + 1430 = 1.00000 + 1433 = 1.00000 + 1435 = 1.00000 + 1444 = 1.00000 + 1451 = 1.00000 + 1455 = 1.00000 + 1457 = 1.00000 + 1460 = 1.00000 + 1461 = 1.00000 + 1463 = 1.00000 + 1466 = 1.00000 + 1469 = 1.00000 + 1470 = 1.00000 + 1476 = 1.00000 + 1487 = 1.00000 + 1493 = 1.00000 + 1496 = 1.00000 + 1499 = 1.00000 + 1511 = 1.00000 + 1516 = 1.00000 + 1525 = 1.00000 + 1531 = 1.00000 + 1540 = 1.00000 + 1551 = 1.00000 + 1552 = 1.00000 + 1554 = 1.00000 + 1557 = 1.00000 + 1561 = 1.00000 + 1566 = 1.00000 + 1567 = 1.00000 + 1569 = 1.00000 + 1572 = 1.00000 + 1576 = 1.00000 + 1611 = 1.00000 + 1614 = 1.00000 + 1620 = 1.00000 + 1623 = 1.00000 + 1636 = 1.00000 + 1637 = 1.00000 + 1640 = 1.00000 + 1643 = 1.00000 + 1645 = 1.00000 + 1646 = 1.00000 + 1649 = 1.00000 + 1651 = 1.00000 + 1660 = 1.00000 + 1667 = 1.00000 + 1671 = 1.00000 + 1672 = 1.00000 + 1673 = 1.00000 + 1674 = 1.00000 + 1676 = 1.00000 + 1677 = 1.00000 + 1679 = 1.00000 + 1681 = 1.00000 + 1682 = 1.00000 + 1685 = 1.00000 + 1686 = 1.00000 + 1687 = 1.00000 + 1689 = 1.00000 + 1692 = 1.00000 + 1696 = 1.00000 + 1703 = 1.00000 + 1709 = 1.00000 + 1712 = 1.00000 + 1715 = 1.00000 + 1727 = 1.00000 + 1731 = 1.00000 + 1733 = 1.00000 + 1734 = 1.00000 + 1736 = 1.00000 + 1739 = 1.00000 + 1740 = 1.00000 + 1743 = 1.00000 + 1751 = 1.00000 + 1755 = 1.00000 + 1761 = 1.00000 + 1770 = 1.00000 + 1776 = 1.00000 + 1815 = 1.00000 + 1816 = 1.00000 + 1819 = 1.00000 + 1821 = 1.00000 + 1828 = 1.00000 + 1830 = 1.00000 + 1831 = 1.00000 + 1834 = 1.00000 + 1836 = 1.00000 + 1843 = 1.00000 + 1852 = 1.00000 + 1858 = 1.00000 + 1861 = 1.00000 + 1867 = 1.00000 + 1875 = 1.00000 + 1877 = 1.00000 + 1880 = 1.00000 + 1881 = 1.00000 + 1883 = 1.00000 + 1886 = 1.00000 + 1889 = 1.00000 + 1890 = 1.00000 + 1896 = 1.00000 + 1907 = 1.00000 + 1913 = 1.00000 + 1916 = 1.00000 + 1919 = 1.00000 + 1931 = 1.00000 + 1935 = 1.00000 + 1936 = 1.00000 + 1937 = 1.00000 + 1939 = 1.00000 + 1940 = 1.00000 + 1941 = 1.00000 + 1943 = 1.00000 + 1946 = 1.00000 + 1948 = 1.00000 + 1949 = 1.00000 + 1950 = 1.00000 + 1951 = 1.00000 + 1954 = 1.00000 + 1956 = 1.00000 + 1963 = 1.00000 + 1967 = 1.00000 + 1972 = 1.00000 + 1973 = 1.00000 + 1976 = 1.00000 + 1978 = 1.00000 + 1979 = 1.00000 + 1981 = 1.00000 + 1987 = 1.00000 + 1991 = 1.00000 + 2019 = 1.00000 + 2022 = 1.00000 + 2028 = 1.00000 + 2031 = 1.00000 + 2044 = 1.00000 + 2050 = 1.00000 + 2053 = 1.00000 + 2059 = 1.00000 + 2067 = 1.00000 + 2068 = 1.00000 + 2070 = 1.00000 + 2074 = 1.00000 + 2076 = 1.00000 + 2077 = 1.00000 + 2079 = 1.00000 + 2083 = 1.00000 + 2093 = 1.00000 + 2096 = 1.00000 + 2099 = 1.00000 + 2111 = 1.00000 + 2115 = 1.00000 + 2117 = 1.00000 + 2118 = 1.00000 + 2120 = 1.00000 + 2123 = 1.00000 + 2124 = 1.00000 + 2127 = 1.00000 + 2135 = 1.00000 + 2140 = 1.00000 + 2141 = 1.00000 + 2144 = 1.00000 + 2146 = 1.00000 + 2147 = 1.00000 + 2149 = 1.00000 + 2155 = 1.00000 + 2159 = 1.00000 + 2163 = 1.00000 + 2164 = 1.00000 + 2165 = 1.00000 + 2166 = 1.00000 + 2168 = 1.00000 + 2170 = 1.00000 + 2171 = 1.00000 + 2172 = 1.00000 + 2173 = 1.00000 + 2175 = 1.00000 + 2179 = 1.00000 + 2183 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=0 + 0 = 1.00000 + 6 = 1.00000 + 12 = 1.00000 + 18 = 1.00000 + 24 = 1.00000 + 25 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 72 = 1.00000 + 73 = 1.00000 + 84 = 1.00000 + 85 = 1.00000 + 96 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 99 = 1.00000 + 336 = 1.00000 + 342 = 1.00000 + 348 = 1.00000 + 349 = 1.00000 + 366 = 1.00000 + 367 = 1.00000 + 384 = 1.00000 + 385 = 1.00000 + 396 = 1.00000 + 397 = 1.00000 + 398 = 1.00000 + 399 = 1.00000 + 588 = 1.00000 + 594 = 1.00000 + 600 = 1.00000 + 601 = 1.00000 + 624 = 1.00000 + 625 = 1.00000 + 636 = 1.00000 + 637 = 1.00000 + 648 = 1.00000 + 649 = 1.00000 + 650 = 1.00000 + 651 = 1.00000 + 840 = 1.00000 + 846 = 1.00000 + 847 = 1.00000 + 864 = 1.00000 + 865 = 1.00000 + 876 = 1.00000 + 877 = 1.00000 + 878 = 1.00000 + 879 = 1.00000 + 1911 = 1.00000 + 1917 = 1.00000 + 1923 = 1.00000 + 1924 = 1.00000 + 1941 = 1.00000 + 1942 = 1.00000 + 1959 = 1.00000 + 1960 = 1.00000 + 1971 = 1.00000 + 1972 = 1.00000 + 1973 = 1.00000 + 1974 = 1.00000 + 2163 = 1.00000 + 2169 = 1.00000 + 2175 = 1.00000 + 2176 = 1.00000 + 2193 = 1.00000 + 2194 = 1.00000 + 2211 = 1.00000 + 2212 = 1.00000 + 2223 = 1.00000 + 2224 = 1.00000 + 2225 = 1.00000 + 2226 = 1.00000 + 2415 = 1.00000 + 2421 = 1.00000 + 2422 = 1.00000 + 2439 = 1.00000 + 2440 = 1.00000 + 2451 = 1.00000 + 2452 = 1.00000 + 2453 = 1.00000 + 2454 = 1.00000 + 2604 = 1.00000 + 2610 = 1.00000 + 2611 = 1.00000 + 2628 = 1.00000 + 2629 = 1.00000 + 2640 = 1.00000 + 2641 = 1.00000 + 2642 = 1.00000 + 2643 = 1.00000 + 3549 = 1.00000 + 3555 = 1.00000 + 3561 = 1.00000 + 3562 = 1.00000 + 3585 = 1.00000 + 3586 = 1.00000 + 3597 = 1.00000 + 3598 = 1.00000 + 3609 = 1.00000 + 3610 = 1.00000 + 3611 = 1.00000 + 3612 = 1.00000 + 3801 = 1.00000 + 3807 = 1.00000 + 3808 = 1.00000 + 3825 = 1.00000 + 3826 = 1.00000 + 3837 = 1.00000 + 3838 = 1.00000 + 3839 = 1.00000 + 3840 = 1.00000 + 3990 = 1.00000 + 3996 = 1.00000 + 4002 = 1.00000 + 4003 = 1.00000 + 4026 = 1.00000 + 4027 = 1.00000 + 4038 = 1.00000 + 4039 = 1.00000 + 4050 = 1.00000 + 4051 = 1.00000 + 4052 = 1.00000 + 4053 = 1.00000 + 4242 = 1.00000 + 4248 = 1.00000 + 4249 = 1.00000 + 4266 = 1.00000 + 4267 = 1.00000 + 4278 = 1.00000 + 4279 = 1.00000 + 4280 = 1.00000 + 4281 = 1.00000 + 5187 = 1.00000 + 5193 = 1.00000 + 5194 = 1.00000 + 5211 = 1.00000 + 5212 = 1.00000 + 5223 = 1.00000 + 5224 = 1.00000 + 5225 = 1.00000 + 5226 = 1.00000 + 5376 = 1.00000 + 5382 = 1.00000 + 5383 = 1.00000 + 5400 = 1.00000 + 5401 = 1.00000 + 5412 = 1.00000 + 5413 = 1.00000 + 5414 = 1.00000 + 5415 = 1.00000 + 5565 = 1.00000 + 5571 = 1.00000 + 5572 = 1.00000 + 5589 = 1.00000 + 5590 = 1.00000 + 5601 = 1.00000 + 5602 = 1.00000 + 5603 = 1.00000 + 5604 = 1.00000 + 5754 = 1.00000 + 5760 = 1.00000 + 5761 = 1.00000 + 5778 = 1.00000 + 5779 = 1.00000 + 5790 = 1.00000 + 5791 = 1.00000 + 5792 = 1.00000 + 5793 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=1 + 0 = 1.00000 + 6 = 1.00000 + 12 = 1.00000 + 18 = 1.00000 + 24 = 1.00000 + 25 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 72 = 1.00000 + 73 = 1.00000 + 84 = 1.00000 + 85 = 1.00000 + 96 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 99 = 1.00000 + 336 = 1.00000 + 342 = 1.00000 + 348 = 1.00000 + 349 = 1.00000 + 366 = 1.00000 + 367 = 1.00000 + 384 = 1.00000 + 385 = 1.00000 + 396 = 1.00000 + 397 = 1.00000 + 398 = 1.00000 + 399 = 1.00000 + 588 = 1.00000 + 594 = 1.00000 + 600 = 1.00000 + 601 = 1.00000 + 624 = 1.00000 + 625 = 1.00000 + 636 = 1.00000 + 637 = 1.00000 + 648 = 1.00000 + 649 = 1.00000 + 650 = 1.00000 + 651 = 1.00000 + 840 = 1.00000 + 846 = 1.00000 + 847 = 1.00000 + 864 = 1.00000 + 865 = 1.00000 + 876 = 1.00000 + 877 = 1.00000 + 878 = 1.00000 + 879 = 1.00000 + 1173 = 1.00000 + 1176 = 1.00000 + 1179 = 1.00000 + 1182 = 1.00000 + 1185 = 1.00000 + 1186 = 1.00000 + 1203 = 1.00000 + 1204 = 1.00000 + 1221 = 1.00000 + 1222 = 1.00000 + 1227 = 1.00000 + 1228 = 1.00000 + 1233 = 1.00000 + 1234 = 1.00000 + 1235 = 1.00000 + 1236 = 1.00000 + 1425 = 1.00000 + 1428 = 1.00000 + 1431 = 1.00000 + 1432 = 1.00000 + 1443 = 1.00000 + 1444 = 1.00000 + 1455 = 1.00000 + 1456 = 1.00000 + 1461 = 1.00000 + 1462 = 1.00000 + 1463 = 1.00000 + 1464 = 1.00000 + 1641 = 1.00000 + 1644 = 1.00000 + 1647 = 1.00000 + 1648 = 1.00000 + 1665 = 1.00000 + 1666 = 1.00000 + 1671 = 1.00000 + 1672 = 1.00000 + 1677 = 1.00000 + 1678 = 1.00000 + 1679 = 1.00000 + 1680 = 1.00000 + 1830 = 1.00000 + 1833 = 1.00000 + 1834 = 1.00000 + 1845 = 1.00000 + 1846 = 1.00000 + 1851 = 1.00000 + 1852 = 1.00000 + 1853 = 1.00000 + 1854 = 1.00000 + 1911 = 1.00000 + 1917 = 1.00000 + 1923 = 1.00000 + 1924 = 1.00000 + 1941 = 1.00000 + 1942 = 1.00000 + 1959 = 1.00000 + 1960 = 1.00000 + 1971 = 1.00000 + 1972 = 1.00000 + 1973 = 1.00000 + 1974 = 1.00000 + 2163 = 1.00000 + 2169 = 1.00000 + 2175 = 1.00000 + 2176 = 1.00000 + 2193 = 1.00000 + 2194 = 1.00000 + 2211 = 1.00000 + 2212 = 1.00000 + 2223 = 1.00000 + 2224 = 1.00000 + 2225 = 1.00000 + 2226 = 1.00000 + 2415 = 1.00000 + 2421 = 1.00000 + 2422 = 1.00000 + 2439 = 1.00000 + 2440 = 1.00000 + 2451 = 1.00000 + 2452 = 1.00000 + 2453 = 1.00000 + 2454 = 1.00000 + 2604 = 1.00000 + 2610 = 1.00000 + 2611 = 1.00000 + 2628 = 1.00000 + 2629 = 1.00000 + 2640 = 1.00000 + 2641 = 1.00000 + 2642 = 1.00000 + 2643 = 1.00000 + 2901 = 1.00000 + 2904 = 1.00000 + 2907 = 1.00000 + 2908 = 1.00000 + 2919 = 1.00000 + 2920 = 1.00000 + 2931 = 1.00000 + 2932 = 1.00000 + 2937 = 1.00000 + 2938 = 1.00000 + 2939 = 1.00000 + 2940 = 1.00000 + 3117 = 1.00000 + 3120 = 1.00000 + 3123 = 1.00000 + 3124 = 1.00000 + 3135 = 1.00000 + 3136 = 1.00000 + 3147 = 1.00000 + 3148 = 1.00000 + 3153 = 1.00000 + 3154 = 1.00000 + 3155 = 1.00000 + 3156 = 1.00000 + 3306 = 1.00000 + 3309 = 1.00000 + 3310 = 1.00000 + 3321 = 1.00000 + 3322 = 1.00000 + 3327 = 1.00000 + 3328 = 1.00000 + 3329 = 1.00000 + 3330 = 1.00000 + 3468 = 1.00000 + 3471 = 1.00000 + 3472 = 1.00000 + 3483 = 1.00000 + 3484 = 1.00000 + 3489 = 1.00000 + 3490 = 1.00000 + 3491 = 1.00000 + 3492 = 1.00000 + 3549 = 1.00000 + 3555 = 1.00000 + 3561 = 1.00000 + 3562 = 1.00000 + 3585 = 1.00000 + 3586 = 1.00000 + 3597 = 1.00000 + 3598 = 1.00000 + 3609 = 1.00000 + 3610 = 1.00000 + 3611 = 1.00000 + 3612 = 1.00000 + 3801 = 1.00000 + 3807 = 1.00000 + 3808 = 1.00000 + 3825 = 1.00000 + 3826 = 1.00000 + 3837 = 1.00000 + 3838 = 1.00000 + 3839 = 1.00000 + 3840 = 1.00000 + 3990 = 1.00000 + 3996 = 1.00000 + 4002 = 1.00000 + 4003 = 1.00000 + 4026 = 1.00000 + 4027 = 1.00000 + 4038 = 1.00000 + 4039 = 1.00000 + 4050 = 1.00000 + 4051 = 1.00000 + 4052 = 1.00000 + 4053 = 1.00000 + 4242 = 1.00000 + 4248 = 1.00000 + 4249 = 1.00000 + 4266 = 1.00000 + 4267 = 1.00000 + 4278 = 1.00000 + 4279 = 1.00000 + 4280 = 1.00000 + 4281 = 1.00000 + 4539 = 1.00000 + 4542 = 1.00000 + 4545 = 1.00000 + 4546 = 1.00000 + 4563 = 1.00000 + 4564 = 1.00000 + 4569 = 1.00000 + 4570 = 1.00000 + 4575 = 1.00000 + 4576 = 1.00000 + 4577 = 1.00000 + 4578 = 1.00000 + 4728 = 1.00000 + 4731 = 1.00000 + 4732 = 1.00000 + 4743 = 1.00000 + 4744 = 1.00000 + 4749 = 1.00000 + 4750 = 1.00000 + 4751 = 1.00000 + 4752 = 1.00000 + 4917 = 1.00000 + 4920 = 1.00000 + 4923 = 1.00000 + 4924 = 1.00000 + 4941 = 1.00000 + 4942 = 1.00000 + 4947 = 1.00000 + 4948 = 1.00000 + 4953 = 1.00000 + 4954 = 1.00000 + 4955 = 1.00000 + 4956 = 1.00000 + 5106 = 1.00000 + 5109 = 1.00000 + 5110 = 1.00000 + 5121 = 1.00000 + 5122 = 1.00000 + 5127 = 1.00000 + 5128 = 1.00000 + 5129 = 1.00000 + 5130 = 1.00000 + 5187 = 1.00000 + 5193 = 1.00000 + 5194 = 1.00000 + 5211 = 1.00000 + 5212 = 1.00000 + 5223 = 1.00000 + 5224 = 1.00000 + 5225 = 1.00000 + 5226 = 1.00000 + 5376 = 1.00000 + 5382 = 1.00000 + 5383 = 1.00000 + 5400 = 1.00000 + 5401 = 1.00000 + 5412 = 1.00000 + 5413 = 1.00000 + 5414 = 1.00000 + 5415 = 1.00000 + 5565 = 1.00000 + 5571 = 1.00000 + 5572 = 1.00000 + 5589 = 1.00000 + 5590 = 1.00000 + 5601 = 1.00000 + 5602 = 1.00000 + 5603 = 1.00000 + 5604 = 1.00000 + 5754 = 1.00000 + 5760 = 1.00000 + 5761 = 1.00000 + 5778 = 1.00000 + 5779 = 1.00000 + 5790 = 1.00000 + 5791 = 1.00000 + 5792 = 1.00000 + 5793 = 1.00000 + 6024 = 1.00000 + 6027 = 1.00000 + 6028 = 1.00000 + 6039 = 1.00000 + 6040 = 1.00000 + 6045 = 1.00000 + 6046 = 1.00000 + 6047 = 1.00000 + 6048 = 1.00000 + 6186 = 1.00000 + 6189 = 1.00000 + 6190 = 1.00000 + 6201 = 1.00000 + 6202 = 1.00000 + 6207 = 1.00000 + 6208 = 1.00000 + 6209 = 1.00000 + 6210 = 1.00000 + 6348 = 1.00000 + 6351 = 1.00000 + 6352 = 1.00000 + 6363 = 1.00000 + 6364 = 1.00000 + 6369 = 1.00000 + 6370 = 1.00000 + 6371 = 1.00000 + 6372 = 1.00000 + 6510 = 1.00000 + 6513 = 1.00000 + 6514 = 1.00000 + 6525 = 1.00000 + 6526 = 1.00000 + 6531 = 1.00000 + 6532 = 1.00000 + 6533 = 1.00000 + 6534 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=2 + 0 = 1.00000 + 1 = 1.00000 + 4 = 1.00000 + 6 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 16 = 1.00000 + 18 = 1.00000 + 24 = 1.00000 + 25 = 1.00000 + 38 = 1.00000 + 39 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 62 = 1.00000 + 63 = 1.00000 + 72 = 1.00000 + 74 = 1.00000 + 73 = 1.00000 + 75 = 1.00000 + 80 = 1.00000 + 81 = 1.00000 + 84 = 1.00000 + 85 = 1.00000 + 96 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 99 = 1.00000 + 124 = 1.00000 + 125 = 1.00000 + 126 = 1.00000 + 127 = 1.00000 + 193 = 1.00000 + 199 = 1.00000 + 212 = 1.00000 + 213 = 1.00000 + 230 = 1.00000 + 231 = 1.00000 + 242 = 1.00000 + 243 = 1.00000 + 268 = 1.00000 + 269 = 1.00000 + 270 = 1.00000 + 271 = 1.00000 + 336 = 1.00000 + 342 = 1.00000 + 348 = 1.00000 + 349 = 1.00000 + 366 = 1.00000 + 367 = 1.00000 + 384 = 1.00000 + 385 = 1.00000 + 396 = 1.00000 + 397 = 1.00000 + 398 = 1.00000 + 399 = 1.00000 + 588 = 1.00000 + 589 = 1.00000 + 592 = 1.00000 + 594 = 1.00000 + 600 = 1.00000 + 601 = 1.00000 + 614 = 1.00000 + 615 = 1.00000 + 624 = 1.00000 + 626 = 1.00000 + 625 = 1.00000 + 627 = 1.00000 + 632 = 1.00000 + 633 = 1.00000 + 636 = 1.00000 + 637 = 1.00000 + 648 = 1.00000 + 649 = 1.00000 + 650 = 1.00000 + 651 = 1.00000 + 676 = 1.00000 + 677 = 1.00000 + 678 = 1.00000 + 679 = 1.00000 + 733 = 1.00000 + 746 = 1.00000 + 747 = 1.00000 + 758 = 1.00000 + 759 = 1.00000 + 784 = 1.00000 + 785 = 1.00000 + 786 = 1.00000 + 787 = 1.00000 + 840 = 1.00000 + 846 = 1.00000 + 847 = 1.00000 + 864 = 1.00000 + 865 = 1.00000 + 876 = 1.00000 + 877 = 1.00000 + 878 = 1.00000 + 879 = 1.00000 + 1030 = 1.00000 + 1036 = 1.00000 + 1049 = 1.00000 + 1050 = 1.00000 + 1067 = 1.00000 + 1068 = 1.00000 + 1079 = 1.00000 + 1080 = 1.00000 + 1105 = 1.00000 + 1106 = 1.00000 + 1107 = 1.00000 + 1108 = 1.00000 + 1173 = 1.00000 + 1174 = 1.00000 + 1176 = 1.00000 + 1179 = 1.00000 + 1180 = 1.00000 + 1182 = 1.00000 + 1185 = 1.00000 + 1186 = 1.00000 + 1193 = 1.00000 + 1194 = 1.00000 + 1203 = 1.00000 + 1204 = 1.00000 + 1211 = 1.00000 + 1212 = 1.00000 + 1221 = 1.00000 + 1223 = 1.00000 + 1222 = 1.00000 + 1224 = 1.00000 + 1227 = 1.00000 + 1228 = 1.00000 + 1233 = 1.00000 + 1234 = 1.00000 + 1235 = 1.00000 + 1236 = 1.00000 + 1249 = 1.00000 + 1250 = 1.00000 + 1251 = 1.00000 + 1252 = 1.00000 + 1425 = 1.00000 + 1428 = 1.00000 + 1431 = 1.00000 + 1432 = 1.00000 + 1443 = 1.00000 + 1444 = 1.00000 + 1455 = 1.00000 + 1456 = 1.00000 + 1461 = 1.00000 + 1462 = 1.00000 + 1463 = 1.00000 + 1464 = 1.00000 + 1534 = 1.00000 + 1547 = 1.00000 + 1548 = 1.00000 + 1559 = 1.00000 + 1560 = 1.00000 + 1585 = 1.00000 + 1586 = 1.00000 + 1587 = 1.00000 + 1588 = 1.00000 + 1641 = 1.00000 + 1642 = 1.00000 + 1644 = 1.00000 + 1647 = 1.00000 + 1648 = 1.00000 + 1655 = 1.00000 + 1656 = 1.00000 + 1665 = 1.00000 + 1667 = 1.00000 + 1666 = 1.00000 + 1668 = 1.00000 + 1671 = 1.00000 + 1672 = 1.00000 + 1677 = 1.00000 + 1678 = 1.00000 + 1679 = 1.00000 + 1680 = 1.00000 + 1693 = 1.00000 + 1694 = 1.00000 + 1695 = 1.00000 + 1696 = 1.00000 + 1830 = 1.00000 + 1833 = 1.00000 + 1834 = 1.00000 + 1845 = 1.00000 + 1846 = 1.00000 + 1851 = 1.00000 + 1852 = 1.00000 + 1853 = 1.00000 + 1854 = 1.00000 + 1911 = 1.00000 + 1917 = 1.00000 + 1923 = 1.00000 + 1924 = 1.00000 + 1941 = 1.00000 + 1942 = 1.00000 + 1959 = 1.00000 + 1960 = 1.00000 + 1971 = 1.00000 + 1972 = 1.00000 + 1973 = 1.00000 + 1974 = 1.00000 + 2163 = 1.00000 + 2169 = 1.00000 + 2175 = 1.00000 + 2176 = 1.00000 + 2193 = 1.00000 + 2194 = 1.00000 + 2211 = 1.00000 + 2212 = 1.00000 + 2223 = 1.00000 + 2224 = 1.00000 + 2225 = 1.00000 + 2226 = 1.00000 + 2415 = 1.00000 + 2421 = 1.00000 + 2422 = 1.00000 + 2439 = 1.00000 + 2440 = 1.00000 + 2451 = 1.00000 + 2452 = 1.00000 + 2453 = 1.00000 + 2454 = 1.00000 + 2604 = 1.00000 + 2610 = 1.00000 + 2611 = 1.00000 + 2628 = 1.00000 + 2629 = 1.00000 + 2640 = 1.00000 + 2641 = 1.00000 + 2642 = 1.00000 + 2643 = 1.00000 + 2901 = 1.00000 + 2904 = 1.00000 + 2907 = 1.00000 + 2908 = 1.00000 + 2919 = 1.00000 + 2920 = 1.00000 + 2931 = 1.00000 + 2932 = 1.00000 + 2937 = 1.00000 + 2938 = 1.00000 + 2939 = 1.00000 + 2940 = 1.00000 + 3117 = 1.00000 + 3120 = 1.00000 + 3123 = 1.00000 + 3124 = 1.00000 + 3135 = 1.00000 + 3136 = 1.00000 + 3147 = 1.00000 + 3148 = 1.00000 + 3153 = 1.00000 + 3154 = 1.00000 + 3155 = 1.00000 + 3156 = 1.00000 + 3306 = 1.00000 + 3309 = 1.00000 + 3310 = 1.00000 + 3321 = 1.00000 + 3322 = 1.00000 + 3327 = 1.00000 + 3328 = 1.00000 + 3329 = 1.00000 + 3330 = 1.00000 + 3468 = 1.00000 + 3471 = 1.00000 + 3472 = 1.00000 + 3483 = 1.00000 + 3484 = 1.00000 + 3489 = 1.00000 + 3490 = 1.00000 + 3491 = 1.00000 + 3492 = 1.00000 + 3549 = 1.00000 + 3550 = 1.00000 + 3553 = 1.00000 + 3555 = 1.00000 + 3561 = 1.00000 + 3562 = 1.00000 + 3575 = 1.00000 + 3576 = 1.00000 + 3585 = 1.00000 + 3587 = 1.00000 + 3586 = 1.00000 + 3588 = 1.00000 + 3593 = 1.00000 + 3594 = 1.00000 + 3597 = 1.00000 + 3598 = 1.00000 + 3609 = 1.00000 + 3610 = 1.00000 + 3611 = 1.00000 + 3612 = 1.00000 + 3637 = 1.00000 + 3638 = 1.00000 + 3639 = 1.00000 + 3640 = 1.00000 + 3694 = 1.00000 + 3707 = 1.00000 + 3708 = 1.00000 + 3719 = 1.00000 + 3720 = 1.00000 + 3745 = 1.00000 + 3746 = 1.00000 + 3747 = 1.00000 + 3748 = 1.00000 + 3801 = 1.00000 + 3807 = 1.00000 + 3808 = 1.00000 + 3825 = 1.00000 + 3826 = 1.00000 + 3837 = 1.00000 + 3838 = 1.00000 + 3839 = 1.00000 + 3840 = 1.00000 + 3990 = 1.00000 + 3991 = 1.00000 + 3994 = 1.00000 + 3996 = 1.00000 + 4002 = 1.00000 + 4003 = 1.00000 + 4016 = 1.00000 + 4017 = 1.00000 + 4026 = 1.00000 + 4028 = 1.00000 + 4027 = 1.00000 + 4029 = 1.00000 + 4034 = 1.00000 + 4035 = 1.00000 + 4038 = 1.00000 + 4039 = 1.00000 + 4050 = 1.00000 + 4051 = 1.00000 + 4052 = 1.00000 + 4053 = 1.00000 + 4078 = 1.00000 + 4079 = 1.00000 + 4080 = 1.00000 + 4081 = 1.00000 + 4135 = 1.00000 + 4148 = 1.00000 + 4149 = 1.00000 + 4160 = 1.00000 + 4161 = 1.00000 + 4186 = 1.00000 + 4187 = 1.00000 + 4188 = 1.00000 + 4189 = 1.00000 + 4242 = 1.00000 + 4248 = 1.00000 + 4249 = 1.00000 + 4266 = 1.00000 + 4267 = 1.00000 + 4278 = 1.00000 + 4279 = 1.00000 + 4280 = 1.00000 + 4281 = 1.00000 + 4432 = 1.00000 + 4445 = 1.00000 + 4446 = 1.00000 + 4457 = 1.00000 + 4458 = 1.00000 + 4483 = 1.00000 + 4484 = 1.00000 + 4485 = 1.00000 + 4486 = 1.00000 + 4539 = 1.00000 + 4540 = 1.00000 + 4542 = 1.00000 + 4545 = 1.00000 + 4546 = 1.00000 + 4553 = 1.00000 + 4554 = 1.00000 + 4563 = 1.00000 + 4565 = 1.00000 + 4564 = 1.00000 + 4566 = 1.00000 + 4569 = 1.00000 + 4570 = 1.00000 + 4575 = 1.00000 + 4576 = 1.00000 + 4577 = 1.00000 + 4578 = 1.00000 + 4591 = 1.00000 + 4592 = 1.00000 + 4593 = 1.00000 + 4594 = 1.00000 + 4728 = 1.00000 + 4731 = 1.00000 + 4732 = 1.00000 + 4743 = 1.00000 + 4744 = 1.00000 + 4749 = 1.00000 + 4750 = 1.00000 + 4751 = 1.00000 + 4752 = 1.00000 + 4810 = 1.00000 + 4823 = 1.00000 + 4824 = 1.00000 + 4835 = 1.00000 + 4836 = 1.00000 + 4861 = 1.00000 + 4862 = 1.00000 + 4863 = 1.00000 + 4864 = 1.00000 + 4917 = 1.00000 + 4918 = 1.00000 + 4920 = 1.00000 + 4923 = 1.00000 + 4924 = 1.00000 + 4931 = 1.00000 + 4932 = 1.00000 + 4941 = 1.00000 + 4943 = 1.00000 + 4942 = 1.00000 + 4944 = 1.00000 + 4947 = 1.00000 + 4948 = 1.00000 + 4953 = 1.00000 + 4954 = 1.00000 + 4955 = 1.00000 + 4956 = 1.00000 + 4969 = 1.00000 + 4970 = 1.00000 + 4971 = 1.00000 + 4972 = 1.00000 + 5106 = 1.00000 + 5109 = 1.00000 + 5110 = 1.00000 + 5121 = 1.00000 + 5122 = 1.00000 + 5127 = 1.00000 + 5128 = 1.00000 + 5129 = 1.00000 + 5130 = 1.00000 + 5187 = 1.00000 + 5193 = 1.00000 + 5194 = 1.00000 + 5211 = 1.00000 + 5212 = 1.00000 + 5223 = 1.00000 + 5224 = 1.00000 + 5225 = 1.00000 + 5226 = 1.00000 + 5376 = 1.00000 + 5382 = 1.00000 + 5383 = 1.00000 + 5400 = 1.00000 + 5401 = 1.00000 + 5412 = 1.00000 + 5413 = 1.00000 + 5414 = 1.00000 + 5415 = 1.00000 + 5565 = 1.00000 + 5571 = 1.00000 + 5572 = 1.00000 + 5589 = 1.00000 + 5590 = 1.00000 + 5601 = 1.00000 + 5602 = 1.00000 + 5603 = 1.00000 + 5604 = 1.00000 + 5754 = 1.00000 + 5760 = 1.00000 + 5761 = 1.00000 + 5778 = 1.00000 + 5779 = 1.00000 + 5790 = 1.00000 + 5791 = 1.00000 + 5792 = 1.00000 + 5793 = 1.00000 + 6024 = 1.00000 + 6027 = 1.00000 + 6028 = 1.00000 + 6039 = 1.00000 + 6040 = 1.00000 + 6045 = 1.00000 + 6046 = 1.00000 + 6047 = 1.00000 + 6048 = 1.00000 + 6186 = 1.00000 + 6189 = 1.00000 + 6190 = 1.00000 + 6201 = 1.00000 + 6202 = 1.00000 + 6207 = 1.00000 + 6208 = 1.00000 + 6209 = 1.00000 + 6210 = 1.00000 + 6348 = 1.00000 + 6351 = 1.00000 + 6352 = 1.00000 + 6363 = 1.00000 + 6364 = 1.00000 + 6369 = 1.00000 + 6370 = 1.00000 + 6371 = 1.00000 + 6372 = 1.00000 + 6510 = 1.00000 + 6513 = 1.00000 + 6514 = 1.00000 + 6525 = 1.00000 + 6526 = 1.00000 + 6531 = 1.00000 + 6532 = 1.00000 + 6533 = 1.00000 + 6534 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=3 + 0 = 1.00000 + 1 = 1.00000 + 4 = 1.00000 + 6 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 16 = 1.00000 + 18 = 1.00000 + 24 = 1.00000 + 25 = 1.00000 + 38 = 1.00000 + 39 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 62 = 1.00000 + 63 = 1.00000 + 72 = 1.00000 + 74 = 1.00000 + 73 = 1.00000 + 75 = 1.00000 + 80 = 1.00000 + 81 = 1.00000 + 84 = 1.00000 + 85 = 1.00000 + 96 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 99 = 1.00000 + 124 = 1.00000 + 125 = 1.00000 + 126 = 1.00000 + 127 = 1.00000 + 193 = 1.00000 + 199 = 1.00000 + 212 = 1.00000 + 213 = 1.00000 + 230 = 1.00000 + 231 = 1.00000 + 242 = 1.00000 + 243 = 1.00000 + 268 = 1.00000 + 269 = 1.00000 + 270 = 1.00000 + 271 = 1.00000 + 336 = 1.00000 + 342 = 1.00000 + 348 = 1.00000 + 349 = 1.00000 + 366 = 1.00000 + 367 = 1.00000 + 384 = 1.00000 + 385 = 1.00000 + 396 = 1.00000 + 397 = 1.00000 + 398 = 1.00000 + 399 = 1.00000 + 588 = 1.00000 + 589 = 1.00000 + 592 = 1.00000 + 594 = 1.00000 + 600 = 1.00000 + 601 = 1.00000 + 614 = 1.00000 + 615 = 1.00000 + 624 = 1.00000 + 626 = 1.00000 + 625 = 1.00000 + 627 = 1.00000 + 632 = 1.00000 + 633 = 1.00000 + 636 = 1.00000 + 637 = 1.00000 + 648 = 1.00000 + 649 = 1.00000 + 650 = 1.00000 + 651 = 1.00000 + 676 = 1.00000 + 677 = 1.00000 + 678 = 1.00000 + 679 = 1.00000 + 733 = 1.00000 + 746 = 1.00000 + 747 = 1.00000 + 758 = 1.00000 + 759 = 1.00000 + 784 = 1.00000 + 785 = 1.00000 + 786 = 1.00000 + 787 = 1.00000 + 840 = 1.00000 + 846 = 1.00000 + 847 = 1.00000 + 864 = 1.00000 + 865 = 1.00000 + 876 = 1.00000 + 877 = 1.00000 + 878 = 1.00000 + 879 = 1.00000 + 1030 = 1.00000 + 1036 = 1.00000 + 1049 = 1.00000 + 1050 = 1.00000 + 1067 = 1.00000 + 1068 = 1.00000 + 1079 = 1.00000 + 1080 = 1.00000 + 1105 = 1.00000 + 1106 = 1.00000 + 1107 = 1.00000 + 1108 = 1.00000 + 1173 = 1.00000 + 1174 = 1.00000 + 1176 = 1.00000 + 1179 = 1.00000 + 1180 = 1.00000 + 1182 = 1.00000 + 1185 = 1.00000 + 1186 = 1.00000 + 1193 = 1.00000 + 1194 = 1.00000 + 1203 = 1.00000 + 1204 = 1.00000 + 1211 = 1.00000 + 1212 = 1.00000 + 1221 = 1.00000 + 1223 = 1.00000 + 1222 = 1.00000 + 1224 = 1.00000 + 1227 = 1.00000 + 1228 = 1.00000 + 1233 = 1.00000 + 1234 = 1.00000 + 1235 = 1.00000 + 1236 = 1.00000 + 1249 = 1.00000 + 1250 = 1.00000 + 1251 = 1.00000 + 1252 = 1.00000 + 1425 = 1.00000 + 1428 = 1.00000 + 1431 = 1.00000 + 1432 = 1.00000 + 1443 = 1.00000 + 1444 = 1.00000 + 1455 = 1.00000 + 1456 = 1.00000 + 1461 = 1.00000 + 1462 = 1.00000 + 1463 = 1.00000 + 1464 = 1.00000 + 1534 = 1.00000 + 1547 = 1.00000 + 1548 = 1.00000 + 1559 = 1.00000 + 1560 = 1.00000 + 1585 = 1.00000 + 1586 = 1.00000 + 1587 = 1.00000 + 1588 = 1.00000 + 1641 = 1.00000 + 1642 = 1.00000 + 1644 = 1.00000 + 1647 = 1.00000 + 1648 = 1.00000 + 1655 = 1.00000 + 1656 = 1.00000 + 1665 = 1.00000 + 1667 = 1.00000 + 1666 = 1.00000 + 1668 = 1.00000 + 1671 = 1.00000 + 1672 = 1.00000 + 1677 = 1.00000 + 1678 = 1.00000 + 1679 = 1.00000 + 1680 = 1.00000 + 1693 = 1.00000 + 1694 = 1.00000 + 1695 = 1.00000 + 1696 = 1.00000 + 1830 = 1.00000 + 1833 = 1.00000 + 1834 = 1.00000 + 1845 = 1.00000 + 1846 = 1.00000 + 1851 = 1.00000 + 1852 = 1.00000 + 1853 = 1.00000 + 1854 = 1.00000 + 1911 = 1.00000 + 1917 = 1.00000 + 1923 = 1.00000 + 1924 = 1.00000 + 1941 = 1.00000 + 1942 = 1.00000 + 1959 = 1.00000 + 1960 = 1.00000 + 1971 = 1.00000 + 1972 = 1.00000 + 1973 = 1.00000 + 1974 = 1.00000 + 2163 = 1.00000 + 2164 = 1.00000 + 2167 = 1.00000 + 2169 = 1.00000 + 2170 = 1.00000 + 2173 = 1.00000 + 2175 = 1.00000 + 2176 = 1.00000 + 2189 = 1.00000 + 2190 = 1.00000 + 2193 = 1.00000 + 2194 = 1.00000 + 2207 = 1.00000 + 2208 = 1.00000 + 2211 = 1.00000 + 2213 = 1.00000 + 2212 = 1.00000 + 2214 = 1.00000 + 2219 = 1.00000 + 2220 = 1.00000 + 2223 = 1.00000 + 2224 = 1.00000 + 2225 = 1.00000 + 2226 = 1.00000 + 2251 = 1.00000 + 2252 = 1.00000 + 2253 = 1.00000 + 2254 = 1.00000 + 2308 = 1.00000 + 2311 = 1.00000 + 2321 = 1.00000 + 2322 = 1.00000 + 2333 = 1.00000 + 2334 = 1.00000 + 2339 = 1.00000 + 2340 = 1.00000 + 2359 = 1.00000 + 2360 = 1.00000 + 2361 = 1.00000 + 2362 = 1.00000 + 2415 = 1.00000 + 2421 = 1.00000 + 2422 = 1.00000 + 2439 = 1.00000 + 2440 = 1.00000 + 2451 = 1.00000 + 2452 = 1.00000 + 2453 = 1.00000 + 2454 = 1.00000 + 2604 = 1.00000 + 2605 = 1.00000 + 2608 = 1.00000 + 2610 = 1.00000 + 2611 = 1.00000 + 2624 = 1.00000 + 2625 = 1.00000 + 2628 = 1.00000 + 2630 = 1.00000 + 2629 = 1.00000 + 2631 = 1.00000 + 2636 = 1.00000 + 2637 = 1.00000 + 2640 = 1.00000 + 2641 = 1.00000 + 2642 = 1.00000 + 2643 = 1.00000 + 2668 = 1.00000 + 2669 = 1.00000 + 2670 = 1.00000 + 2671 = 1.00000 + 2713 = 1.00000 + 2723 = 1.00000 + 2724 = 1.00000 + 2729 = 1.00000 + 2730 = 1.00000 + 2749 = 1.00000 + 2750 = 1.00000 + 2751 = 1.00000 + 2752 = 1.00000 + 2901 = 1.00000 + 2904 = 1.00000 + 2907 = 1.00000 + 2908 = 1.00000 + 2919 = 1.00000 + 2920 = 1.00000 + 2931 = 1.00000 + 2932 = 1.00000 + 2937 = 1.00000 + 2938 = 1.00000 + 2939 = 1.00000 + 2940 = 1.00000 + 3010 = 1.00000 + 3013 = 1.00000 + 3023 = 1.00000 + 3024 = 1.00000 + 3035 = 1.00000 + 3036 = 1.00000 + 3041 = 1.00000 + 3042 = 1.00000 + 3061 = 1.00000 + 3062 = 1.00000 + 3063 = 1.00000 + 3064 = 1.00000 + 3117 = 1.00000 + 3118 = 1.00000 + 3120 = 1.00000 + 3121 = 1.00000 + 3123 = 1.00000 + 3124 = 1.00000 + 3131 = 1.00000 + 3132 = 1.00000 + 3135 = 1.00000 + 3136 = 1.00000 + 3143 = 1.00000 + 3144 = 1.00000 + 3147 = 1.00000 + 3149 = 1.00000 + 3148 = 1.00000 + 3150 = 1.00000 + 3153 = 1.00000 + 3154 = 1.00000 + 3155 = 1.00000 + 3156 = 1.00000 + 3169 = 1.00000 + 3170 = 1.00000 + 3171 = 1.00000 + 3172 = 1.00000 + 3306 = 1.00000 + 3309 = 1.00000 + 3310 = 1.00000 + 3321 = 1.00000 + 3322 = 1.00000 + 3327 = 1.00000 + 3328 = 1.00000 + 3329 = 1.00000 + 3330 = 1.00000 + 3388 = 1.00000 + 3398 = 1.00000 + 3399 = 1.00000 + 3404 = 1.00000 + 3405 = 1.00000 + 3424 = 1.00000 + 3425 = 1.00000 + 3426 = 1.00000 + 3427 = 1.00000 + 3468 = 1.00000 + 3469 = 1.00000 + 3471 = 1.00000 + 3472 = 1.00000 + 3479 = 1.00000 + 3480 = 1.00000 + 3483 = 1.00000 + 3485 = 1.00000 + 3484 = 1.00000 + 3486 = 1.00000 + 3489 = 1.00000 + 3490 = 1.00000 + 3491 = 1.00000 + 3492 = 1.00000 + 3505 = 1.00000 + 3506 = 1.00000 + 3507 = 1.00000 + 3508 = 1.00000 + 3549 = 1.00000 + 3550 = 1.00000 + 3553 = 1.00000 + 3555 = 1.00000 + 3561 = 1.00000 + 3562 = 1.00000 + 3575 = 1.00000 + 3576 = 1.00000 + 3585 = 1.00000 + 3587 = 1.00000 + 3586 = 1.00000 + 3588 = 1.00000 + 3593 = 1.00000 + 3594 = 1.00000 + 3597 = 1.00000 + 3598 = 1.00000 + 3609 = 1.00000 + 3610 = 1.00000 + 3611 = 1.00000 + 3612 = 1.00000 + 3637 = 1.00000 + 3638 = 1.00000 + 3639 = 1.00000 + 3640 = 1.00000 + 3694 = 1.00000 + 3707 = 1.00000 + 3708 = 1.00000 + 3719 = 1.00000 + 3720 = 1.00000 + 3745 = 1.00000 + 3746 = 1.00000 + 3747 = 1.00000 + 3748 = 1.00000 + 3801 = 1.00000 + 3807 = 1.00000 + 3808 = 1.00000 + 3825 = 1.00000 + 3826 = 1.00000 + 3837 = 1.00000 + 3838 = 1.00000 + 3839 = 1.00000 + 3840 = 1.00000 + 3990 = 1.00000 + 3991 = 1.00000 + 3994 = 1.00000 + 3996 = 1.00000 + 4002 = 1.00000 + 4003 = 1.00000 + 4016 = 1.00000 + 4017 = 1.00000 + 4026 = 1.00000 + 4028 = 1.00000 + 4027 = 1.00000 + 4029 = 1.00000 + 4034 = 1.00000 + 4035 = 1.00000 + 4038 = 1.00000 + 4039 = 1.00000 + 4050 = 1.00000 + 4051 = 1.00000 + 4052 = 1.00000 + 4053 = 1.00000 + 4078 = 1.00000 + 4079 = 1.00000 + 4080 = 1.00000 + 4081 = 1.00000 + 4135 = 1.00000 + 4148 = 1.00000 + 4149 = 1.00000 + 4160 = 1.00000 + 4161 = 1.00000 + 4186 = 1.00000 + 4187 = 1.00000 + 4188 = 1.00000 + 4189 = 1.00000 + 4242 = 1.00000 + 4248 = 1.00000 + 4249 = 1.00000 + 4266 = 1.00000 + 4267 = 1.00000 + 4278 = 1.00000 + 4279 = 1.00000 + 4280 = 1.00000 + 4281 = 1.00000 + 4432 = 1.00000 + 4445 = 1.00000 + 4446 = 1.00000 + 4457 = 1.00000 + 4458 = 1.00000 + 4483 = 1.00000 + 4484 = 1.00000 + 4485 = 1.00000 + 4486 = 1.00000 + 4539 = 1.00000 + 4540 = 1.00000 + 4542 = 1.00000 + 4545 = 1.00000 + 4546 = 1.00000 + 4553 = 1.00000 + 4554 = 1.00000 + 4563 = 1.00000 + 4565 = 1.00000 + 4564 = 1.00000 + 4566 = 1.00000 + 4569 = 1.00000 + 4570 = 1.00000 + 4575 = 1.00000 + 4576 = 1.00000 + 4577 = 1.00000 + 4578 = 1.00000 + 4591 = 1.00000 + 4592 = 1.00000 + 4593 = 1.00000 + 4594 = 1.00000 + 4728 = 1.00000 + 4731 = 1.00000 + 4732 = 1.00000 + 4743 = 1.00000 + 4744 = 1.00000 + 4749 = 1.00000 + 4750 = 1.00000 + 4751 = 1.00000 + 4752 = 1.00000 + 4810 = 1.00000 + 4823 = 1.00000 + 4824 = 1.00000 + 4835 = 1.00000 + 4836 = 1.00000 + 4861 = 1.00000 + 4862 = 1.00000 + 4863 = 1.00000 + 4864 = 1.00000 + 4917 = 1.00000 + 4918 = 1.00000 + 4920 = 1.00000 + 4923 = 1.00000 + 4924 = 1.00000 + 4931 = 1.00000 + 4932 = 1.00000 + 4941 = 1.00000 + 4943 = 1.00000 + 4942 = 1.00000 + 4944 = 1.00000 + 4947 = 1.00000 + 4948 = 1.00000 + 4953 = 1.00000 + 4954 = 1.00000 + 4955 = 1.00000 + 4956 = 1.00000 + 4969 = 1.00000 + 4970 = 1.00000 + 4971 = 1.00000 + 4972 = 1.00000 + 5106 = 1.00000 + 5109 = 1.00000 + 5110 = 1.00000 + 5121 = 1.00000 + 5122 = 1.00000 + 5127 = 1.00000 + 5128 = 1.00000 + 5129 = 1.00000 + 5130 = 1.00000 + 5187 = 1.00000 + 5193 = 1.00000 + 5194 = 1.00000 + 5211 = 1.00000 + 5212 = 1.00000 + 5223 = 1.00000 + 5224 = 1.00000 + 5225 = 1.00000 + 5226 = 1.00000 + 5376 = 1.00000 + 5377 = 1.00000 + 5380 = 1.00000 + 5382 = 1.00000 + 5383 = 1.00000 + 5396 = 1.00000 + 5397 = 1.00000 + 5400 = 1.00000 + 5402 = 1.00000 + 5401 = 1.00000 + 5403 = 1.00000 + 5408 = 1.00000 + 5409 = 1.00000 + 5412 = 1.00000 + 5413 = 1.00000 + 5414 = 1.00000 + 5415 = 1.00000 + 5440 = 1.00000 + 5441 = 1.00000 + 5442 = 1.00000 + 5443 = 1.00000 + 5485 = 1.00000 + 5495 = 1.00000 + 5496 = 1.00000 + 5501 = 1.00000 + 5502 = 1.00000 + 5521 = 1.00000 + 5522 = 1.00000 + 5523 = 1.00000 + 5524 = 1.00000 + 5565 = 1.00000 + 5571 = 1.00000 + 5572 = 1.00000 + 5589 = 1.00000 + 5590 = 1.00000 + 5601 = 1.00000 + 5602 = 1.00000 + 5603 = 1.00000 + 5604 = 1.00000 + 5754 = 1.00000 + 5755 = 1.00000 + 5758 = 1.00000 + 5760 = 1.00000 + 5761 = 1.00000 + 5774 = 1.00000 + 5775 = 1.00000 + 5778 = 1.00000 + 5780 = 1.00000 + 5779 = 1.00000 + 5781 = 1.00000 + 5786 = 1.00000 + 5787 = 1.00000 + 5790 = 1.00000 + 5791 = 1.00000 + 5792 = 1.00000 + 5793 = 1.00000 + 5818 = 1.00000 + 5819 = 1.00000 + 5820 = 1.00000 + 5821 = 1.00000 + 5863 = 1.00000 + 5873 = 1.00000 + 5874 = 1.00000 + 5879 = 1.00000 + 5880 = 1.00000 + 5899 = 1.00000 + 5900 = 1.00000 + 5901 = 1.00000 + 5902 = 1.00000 + 6024 = 1.00000 + 6027 = 1.00000 + 6028 = 1.00000 + 6039 = 1.00000 + 6040 = 1.00000 + 6045 = 1.00000 + 6046 = 1.00000 + 6047 = 1.00000 + 6048 = 1.00000 + 6106 = 1.00000 + 6116 = 1.00000 + 6117 = 1.00000 + 6122 = 1.00000 + 6123 = 1.00000 + 6142 = 1.00000 + 6143 = 1.00000 + 6144 = 1.00000 + 6145 = 1.00000 + 6186 = 1.00000 + 6187 = 1.00000 + 6189 = 1.00000 + 6190 = 1.00000 + 6197 = 1.00000 + 6198 = 1.00000 + 6201 = 1.00000 + 6203 = 1.00000 + 6202 = 1.00000 + 6204 = 1.00000 + 6207 = 1.00000 + 6208 = 1.00000 + 6209 = 1.00000 + 6210 = 1.00000 + 6223 = 1.00000 + 6224 = 1.00000 + 6225 = 1.00000 + 6226 = 1.00000 + 6348 = 1.00000 + 6351 = 1.00000 + 6352 = 1.00000 + 6363 = 1.00000 + 6364 = 1.00000 + 6369 = 1.00000 + 6370 = 1.00000 + 6371 = 1.00000 + 6372 = 1.00000 + 6430 = 1.00000 + 6440 = 1.00000 + 6441 = 1.00000 + 6446 = 1.00000 + 6447 = 1.00000 + 6466 = 1.00000 + 6467 = 1.00000 + 6468 = 1.00000 + 6469 = 1.00000 + 6510 = 1.00000 + 6511 = 1.00000 + 6513 = 1.00000 + 6514 = 1.00000 + 6521 = 1.00000 + 6522 = 1.00000 + 6525 = 1.00000 + 6527 = 1.00000 + 6526 = 1.00000 + 6528 = 1.00000 + 6531 = 1.00000 + 6532 = 1.00000 + 6533 = 1.00000 + 6534 = 1.00000 + 6547 = 1.00000 + 6548 = 1.00000 + 6549 = 1.00000 + 6550 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=4 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 4 = 1.00000 + 5 = 1.00000 + 6 = 1.00000 + 8 = 1.00000 + 11 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 16 = 1.00000 + 18 = 1.00000 + 24 = 1.00000 + 28 = 1.00000 + 25 = 1.00000 + 29 = 1.00000 + 34 = 1.00000 + 35 = 1.00000 + 38 = 1.00000 + 40 = 1.00000 + 39 = 1.00000 + 41 = 1.00000 + 46 = 1.00000 + 47 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 62 = 1.00000 + 63 = 1.00000 + 72 = 1.00000 + 74 = 1.00000 + 73 = 1.00000 + 75 = 1.00000 + 80 = 1.00000 + 81 = 1.00000 + 84 = 1.00000 + 85 = 1.00000 + 96 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 99 = 1.00000 + 124 = 1.00000 + 125 = 1.00000 + 126 = 1.00000 + 127 = 1.00000 + 152 = 1.00000 + 153 = 1.00000 + 154 = 1.00000 + 155 = 1.00000 + 193 = 1.00000 + 194 = 1.00000 + 197 = 1.00000 + 199 = 1.00000 + 208 = 1.00000 + 209 = 1.00000 + 212 = 1.00000 + 214 = 1.00000 + 213 = 1.00000 + 215 = 1.00000 + 220 = 1.00000 + 221 = 1.00000 + 230 = 1.00000 + 231 = 1.00000 + 242 = 1.00000 + 243 = 1.00000 + 268 = 1.00000 + 269 = 1.00000 + 270 = 1.00000 + 271 = 1.00000 + 296 = 1.00000 + 297 = 1.00000 + 298 = 1.00000 + 299 = 1.00000 + 336 = 1.00000 + 338 = 1.00000 + 341 = 1.00000 + 342 = 1.00000 + 348 = 1.00000 + 352 = 1.00000 + 349 = 1.00000 + 353 = 1.00000 + 358 = 1.00000 + 359 = 1.00000 + 364 = 1.00000 + 365 = 1.00000 + 366 = 1.00000 + 367 = 1.00000 + 384 = 1.00000 + 385 = 1.00000 + 396 = 1.00000 + 397 = 1.00000 + 398 = 1.00000 + 399 = 1.00000 + 440 = 1.00000 + 441 = 1.00000 + 442 = 1.00000 + 443 = 1.00000 + 482 = 1.00000 + 490 = 1.00000 + 491 = 1.00000 + 496 = 1.00000 + 497 = 1.00000 + 548 = 1.00000 + 549 = 1.00000 + 550 = 1.00000 + 551 = 1.00000 + 588 = 1.00000 + 589 = 1.00000 + 592 = 1.00000 + 594 = 1.00000 + 600 = 1.00000 + 601 = 1.00000 + 614 = 1.00000 + 615 = 1.00000 + 624 = 1.00000 + 626 = 1.00000 + 625 = 1.00000 + 627 = 1.00000 + 632 = 1.00000 + 633 = 1.00000 + 636 = 1.00000 + 637 = 1.00000 + 648 = 1.00000 + 649 = 1.00000 + 650 = 1.00000 + 651 = 1.00000 + 676 = 1.00000 + 677 = 1.00000 + 678 = 1.00000 + 679 = 1.00000 + 733 = 1.00000 + 746 = 1.00000 + 747 = 1.00000 + 758 = 1.00000 + 759 = 1.00000 + 784 = 1.00000 + 785 = 1.00000 + 786 = 1.00000 + 787 = 1.00000 + 840 = 1.00000 + 846 = 1.00000 + 847 = 1.00000 + 864 = 1.00000 + 865 = 1.00000 + 876 = 1.00000 + 877 = 1.00000 + 878 = 1.00000 + 879 = 1.00000 + 1030 = 1.00000 + 1031 = 1.00000 + 1034 = 1.00000 + 1036 = 1.00000 + 1045 = 1.00000 + 1046 = 1.00000 + 1049 = 1.00000 + 1051 = 1.00000 + 1050 = 1.00000 + 1052 = 1.00000 + 1057 = 1.00000 + 1058 = 1.00000 + 1067 = 1.00000 + 1068 = 1.00000 + 1079 = 1.00000 + 1080 = 1.00000 + 1105 = 1.00000 + 1106 = 1.00000 + 1107 = 1.00000 + 1108 = 1.00000 + 1133 = 1.00000 + 1134 = 1.00000 + 1135 = 1.00000 + 1136 = 1.00000 + 1173 = 1.00000 + 1174 = 1.00000 + 1175 = 1.00000 + 1176 = 1.00000 + 1178 = 1.00000 + 1179 = 1.00000 + 1180 = 1.00000 + 1182 = 1.00000 + 1185 = 1.00000 + 1189 = 1.00000 + 1186 = 1.00000 + 1190 = 1.00000 + 1193 = 1.00000 + 1195 = 1.00000 + 1194 = 1.00000 + 1196 = 1.00000 + 1201 = 1.00000 + 1202 = 1.00000 + 1203 = 1.00000 + 1204 = 1.00000 + 1211 = 1.00000 + 1212 = 1.00000 + 1221 = 1.00000 + 1223 = 1.00000 + 1222 = 1.00000 + 1224 = 1.00000 + 1227 = 1.00000 + 1228 = 1.00000 + 1233 = 1.00000 + 1234 = 1.00000 + 1235 = 1.00000 + 1236 = 1.00000 + 1249 = 1.00000 + 1250 = 1.00000 + 1251 = 1.00000 + 1252 = 1.00000 + 1277 = 1.00000 + 1278 = 1.00000 + 1279 = 1.00000 + 1280 = 1.00000 + 1319 = 1.00000 + 1327 = 1.00000 + 1328 = 1.00000 + 1333 = 1.00000 + 1334 = 1.00000 + 1385 = 1.00000 + 1386 = 1.00000 + 1387 = 1.00000 + 1388 = 1.00000 + 1425 = 1.00000 + 1427 = 1.00000 + 1428 = 1.00000 + 1431 = 1.00000 + 1435 = 1.00000 + 1432 = 1.00000 + 1436 = 1.00000 + 1441 = 1.00000 + 1442 = 1.00000 + 1443 = 1.00000 + 1444 = 1.00000 + 1455 = 1.00000 + 1456 = 1.00000 + 1461 = 1.00000 + 1462 = 1.00000 + 1463 = 1.00000 + 1464 = 1.00000 + 1493 = 1.00000 + 1494 = 1.00000 + 1495 = 1.00000 + 1496 = 1.00000 + 1534 = 1.00000 + 1547 = 1.00000 + 1548 = 1.00000 + 1559 = 1.00000 + 1560 = 1.00000 + 1585 = 1.00000 + 1586 = 1.00000 + 1587 = 1.00000 + 1588 = 1.00000 + 1641 = 1.00000 + 1642 = 1.00000 + 1644 = 1.00000 + 1647 = 1.00000 + 1648 = 1.00000 + 1655 = 1.00000 + 1656 = 1.00000 + 1665 = 1.00000 + 1667 = 1.00000 + 1666 = 1.00000 + 1668 = 1.00000 + 1671 = 1.00000 + 1672 = 1.00000 + 1677 = 1.00000 + 1678 = 1.00000 + 1679 = 1.00000 + 1680 = 1.00000 + 1693 = 1.00000 + 1694 = 1.00000 + 1695 = 1.00000 + 1696 = 1.00000 + 1830 = 1.00000 + 1833 = 1.00000 + 1834 = 1.00000 + 1845 = 1.00000 + 1846 = 1.00000 + 1851 = 1.00000 + 1852 = 1.00000 + 1853 = 1.00000 + 1854 = 1.00000 + 1911 = 1.00000 + 1913 = 1.00000 + 1916 = 1.00000 + 1917 = 1.00000 + 1923 = 1.00000 + 1927 = 1.00000 + 1924 = 1.00000 + 1928 = 1.00000 + 1933 = 1.00000 + 1934 = 1.00000 + 1939 = 1.00000 + 1940 = 1.00000 + 1941 = 1.00000 + 1942 = 1.00000 + 1959 = 1.00000 + 1960 = 1.00000 + 1971 = 1.00000 + 1972 = 1.00000 + 1973 = 1.00000 + 1974 = 1.00000 + 2015 = 1.00000 + 2016 = 1.00000 + 2017 = 1.00000 + 2018 = 1.00000 + 2057 = 1.00000 + 2065 = 1.00000 + 2066 = 1.00000 + 2071 = 1.00000 + 2072 = 1.00000 + 2123 = 1.00000 + 2124 = 1.00000 + 2125 = 1.00000 + 2126 = 1.00000 + 2163 = 1.00000 + 2164 = 1.00000 + 2165 = 1.00000 + 2167 = 1.00000 + 2168 = 1.00000 + 2169 = 1.00000 + 2170 = 1.00000 + 2173 = 1.00000 + 2175 = 1.00000 + 2179 = 1.00000 + 2176 = 1.00000 + 2180 = 1.00000 + 2185 = 1.00000 + 2186 = 1.00000 + 2189 = 1.00000 + 2191 = 1.00000 + 2190 = 1.00000 + 2192 = 1.00000 + 2193 = 1.00000 + 2194 = 1.00000 + 2207 = 1.00000 + 2208 = 1.00000 + 2211 = 1.00000 + 2213 = 1.00000 + 2212 = 1.00000 + 2214 = 1.00000 + 2219 = 1.00000 + 2220 = 1.00000 + 2223 = 1.00000 + 2224 = 1.00000 + 2225 = 1.00000 + 2226 = 1.00000 + 2251 = 1.00000 + 2252 = 1.00000 + 2253 = 1.00000 + 2254 = 1.00000 + 2267 = 1.00000 + 2268 = 1.00000 + 2269 = 1.00000 + 2270 = 1.00000 + 2308 = 1.00000 + 2309 = 1.00000 + 2311 = 1.00000 + 2317 = 1.00000 + 2318 = 1.00000 + 2321 = 1.00000 + 2323 = 1.00000 + 2322 = 1.00000 + 2324 = 1.00000 + 2333 = 1.00000 + 2334 = 1.00000 + 2339 = 1.00000 + 2340 = 1.00000 + 2359 = 1.00000 + 2360 = 1.00000 + 2361 = 1.00000 + 2362 = 1.00000 + 2375 = 1.00000 + 2376 = 1.00000 + 2377 = 1.00000 + 2378 = 1.00000 + 2415 = 1.00000 + 2421 = 1.00000 + 2422 = 1.00000 + 2439 = 1.00000 + 2440 = 1.00000 + 2451 = 1.00000 + 2452 = 1.00000 + 2453 = 1.00000 + 2454 = 1.00000 + 2604 = 1.00000 + 2605 = 1.00000 + 2608 = 1.00000 + 2610 = 1.00000 + 2611 = 1.00000 + 2624 = 1.00000 + 2625 = 1.00000 + 2628 = 1.00000 + 2630 = 1.00000 + 2629 = 1.00000 + 2631 = 1.00000 + 2636 = 1.00000 + 2637 = 1.00000 + 2640 = 1.00000 + 2641 = 1.00000 + 2642 = 1.00000 + 2643 = 1.00000 + 2668 = 1.00000 + 2669 = 1.00000 + 2670 = 1.00000 + 2671 = 1.00000 + 2713 = 1.00000 + 2723 = 1.00000 + 2724 = 1.00000 + 2729 = 1.00000 + 2730 = 1.00000 + 2749 = 1.00000 + 2750 = 1.00000 + 2751 = 1.00000 + 2752 = 1.00000 + 2795 = 1.00000 + 2803 = 1.00000 + 2804 = 1.00000 + 2809 = 1.00000 + 2810 = 1.00000 + 2861 = 1.00000 + 2862 = 1.00000 + 2863 = 1.00000 + 2864 = 1.00000 + 2901 = 1.00000 + 2903 = 1.00000 + 2904 = 1.00000 + 2907 = 1.00000 + 2911 = 1.00000 + 2908 = 1.00000 + 2912 = 1.00000 + 2917 = 1.00000 + 2918 = 1.00000 + 2919 = 1.00000 + 2920 = 1.00000 + 2931 = 1.00000 + 2932 = 1.00000 + 2937 = 1.00000 + 2938 = 1.00000 + 2939 = 1.00000 + 2940 = 1.00000 + 2969 = 1.00000 + 2970 = 1.00000 + 2971 = 1.00000 + 2972 = 1.00000 + 3010 = 1.00000 + 3011 = 1.00000 + 3013 = 1.00000 + 3019 = 1.00000 + 3020 = 1.00000 + 3023 = 1.00000 + 3025 = 1.00000 + 3024 = 1.00000 + 3026 = 1.00000 + 3035 = 1.00000 + 3036 = 1.00000 + 3041 = 1.00000 + 3042 = 1.00000 + 3061 = 1.00000 + 3062 = 1.00000 + 3063 = 1.00000 + 3064 = 1.00000 + 3077 = 1.00000 + 3078 = 1.00000 + 3079 = 1.00000 + 3080 = 1.00000 + 3117 = 1.00000 + 3118 = 1.00000 + 3119 = 1.00000 + 3120 = 1.00000 + 3121 = 1.00000 + 3123 = 1.00000 + 3127 = 1.00000 + 3124 = 1.00000 + 3128 = 1.00000 + 3131 = 1.00000 + 3133 = 1.00000 + 3132 = 1.00000 + 3134 = 1.00000 + 3135 = 1.00000 + 3136 = 1.00000 + 3143 = 1.00000 + 3144 = 1.00000 + 3147 = 1.00000 + 3149 = 1.00000 + 3148 = 1.00000 + 3150 = 1.00000 + 3153 = 1.00000 + 3154 = 1.00000 + 3155 = 1.00000 + 3156 = 1.00000 + 3169 = 1.00000 + 3170 = 1.00000 + 3171 = 1.00000 + 3172 = 1.00000 + 3185 = 1.00000 + 3186 = 1.00000 + 3187 = 1.00000 + 3188 = 1.00000 + 3306 = 1.00000 + 3309 = 1.00000 + 3310 = 1.00000 + 3321 = 1.00000 + 3322 = 1.00000 + 3327 = 1.00000 + 3328 = 1.00000 + 3329 = 1.00000 + 3330 = 1.00000 + 3388 = 1.00000 + 3398 = 1.00000 + 3399 = 1.00000 + 3404 = 1.00000 + 3405 = 1.00000 + 3424 = 1.00000 + 3425 = 1.00000 + 3426 = 1.00000 + 3427 = 1.00000 + 3468 = 1.00000 + 3469 = 1.00000 + 3471 = 1.00000 + 3472 = 1.00000 + 3479 = 1.00000 + 3480 = 1.00000 + 3483 = 1.00000 + 3485 = 1.00000 + 3484 = 1.00000 + 3486 = 1.00000 + 3489 = 1.00000 + 3490 = 1.00000 + 3491 = 1.00000 + 3492 = 1.00000 + 3505 = 1.00000 + 3506 = 1.00000 + 3507 = 1.00000 + 3508 = 1.00000 + 3549 = 1.00000 + 3550 = 1.00000 + 3553 = 1.00000 + 3555 = 1.00000 + 3561 = 1.00000 + 3562 = 1.00000 + 3575 = 1.00000 + 3576 = 1.00000 + 3585 = 1.00000 + 3587 = 1.00000 + 3586 = 1.00000 + 3588 = 1.00000 + 3593 = 1.00000 + 3594 = 1.00000 + 3597 = 1.00000 + 3598 = 1.00000 + 3609 = 1.00000 + 3610 = 1.00000 + 3611 = 1.00000 + 3612 = 1.00000 + 3637 = 1.00000 + 3638 = 1.00000 + 3639 = 1.00000 + 3640 = 1.00000 + 3694 = 1.00000 + 3707 = 1.00000 + 3708 = 1.00000 + 3719 = 1.00000 + 3720 = 1.00000 + 3745 = 1.00000 + 3746 = 1.00000 + 3747 = 1.00000 + 3748 = 1.00000 + 3801 = 1.00000 + 3807 = 1.00000 + 3808 = 1.00000 + 3825 = 1.00000 + 3826 = 1.00000 + 3837 = 1.00000 + 3838 = 1.00000 + 3839 = 1.00000 + 3840 = 1.00000 + 3990 = 1.00000 + 3991 = 1.00000 + 3994 = 1.00000 + 3996 = 1.00000 + 4002 = 1.00000 + 4003 = 1.00000 + 4016 = 1.00000 + 4017 = 1.00000 + 4026 = 1.00000 + 4028 = 1.00000 + 4027 = 1.00000 + 4029 = 1.00000 + 4034 = 1.00000 + 4035 = 1.00000 + 4038 = 1.00000 + 4039 = 1.00000 + 4050 = 1.00000 + 4051 = 1.00000 + 4052 = 1.00000 + 4053 = 1.00000 + 4078 = 1.00000 + 4079 = 1.00000 + 4080 = 1.00000 + 4081 = 1.00000 + 4135 = 1.00000 + 4148 = 1.00000 + 4149 = 1.00000 + 4160 = 1.00000 + 4161 = 1.00000 + 4186 = 1.00000 + 4187 = 1.00000 + 4188 = 1.00000 + 4189 = 1.00000 + 4242 = 1.00000 + 4248 = 1.00000 + 4249 = 1.00000 + 4266 = 1.00000 + 4267 = 1.00000 + 4278 = 1.00000 + 4279 = 1.00000 + 4280 = 1.00000 + 4281 = 1.00000 + 4432 = 1.00000 + 4445 = 1.00000 + 4446 = 1.00000 + 4457 = 1.00000 + 4458 = 1.00000 + 4483 = 1.00000 + 4484 = 1.00000 + 4485 = 1.00000 + 4486 = 1.00000 + 4539 = 1.00000 + 4540 = 1.00000 + 4542 = 1.00000 + 4545 = 1.00000 + 4546 = 1.00000 + 4553 = 1.00000 + 4554 = 1.00000 + 4563 = 1.00000 + 4565 = 1.00000 + 4564 = 1.00000 + 4566 = 1.00000 + 4569 = 1.00000 + 4570 = 1.00000 + 4575 = 1.00000 + 4576 = 1.00000 + 4577 = 1.00000 + 4578 = 1.00000 + 4591 = 1.00000 + 4592 = 1.00000 + 4593 = 1.00000 + 4594 = 1.00000 + 4728 = 1.00000 + 4731 = 1.00000 + 4732 = 1.00000 + 4743 = 1.00000 + 4744 = 1.00000 + 4749 = 1.00000 + 4750 = 1.00000 + 4751 = 1.00000 + 4752 = 1.00000 + 4810 = 1.00000 + 4823 = 1.00000 + 4824 = 1.00000 + 4835 = 1.00000 + 4836 = 1.00000 + 4861 = 1.00000 + 4862 = 1.00000 + 4863 = 1.00000 + 4864 = 1.00000 + 4917 = 1.00000 + 4918 = 1.00000 + 4920 = 1.00000 + 4923 = 1.00000 + 4924 = 1.00000 + 4931 = 1.00000 + 4932 = 1.00000 + 4941 = 1.00000 + 4943 = 1.00000 + 4942 = 1.00000 + 4944 = 1.00000 + 4947 = 1.00000 + 4948 = 1.00000 + 4953 = 1.00000 + 4954 = 1.00000 + 4955 = 1.00000 + 4956 = 1.00000 + 4969 = 1.00000 + 4970 = 1.00000 + 4971 = 1.00000 + 4972 = 1.00000 + 5106 = 1.00000 + 5109 = 1.00000 + 5110 = 1.00000 + 5121 = 1.00000 + 5122 = 1.00000 + 5127 = 1.00000 + 5128 = 1.00000 + 5129 = 1.00000 + 5130 = 1.00000 + 5187 = 1.00000 + 5193 = 1.00000 + 5194 = 1.00000 + 5211 = 1.00000 + 5212 = 1.00000 + 5223 = 1.00000 + 5224 = 1.00000 + 5225 = 1.00000 + 5226 = 1.00000 + 5376 = 1.00000 + 5377 = 1.00000 + 5380 = 1.00000 + 5382 = 1.00000 + 5383 = 1.00000 + 5396 = 1.00000 + 5397 = 1.00000 + 5400 = 1.00000 + 5402 = 1.00000 + 5401 = 1.00000 + 5403 = 1.00000 + 5408 = 1.00000 + 5409 = 1.00000 + 5412 = 1.00000 + 5413 = 1.00000 + 5414 = 1.00000 + 5415 = 1.00000 + 5440 = 1.00000 + 5441 = 1.00000 + 5442 = 1.00000 + 5443 = 1.00000 + 5485 = 1.00000 + 5495 = 1.00000 + 5496 = 1.00000 + 5501 = 1.00000 + 5502 = 1.00000 + 5521 = 1.00000 + 5522 = 1.00000 + 5523 = 1.00000 + 5524 = 1.00000 + 5565 = 1.00000 + 5571 = 1.00000 + 5572 = 1.00000 + 5589 = 1.00000 + 5590 = 1.00000 + 5601 = 1.00000 + 5602 = 1.00000 + 5603 = 1.00000 + 5604 = 1.00000 + 5754 = 1.00000 + 5755 = 1.00000 + 5758 = 1.00000 + 5760 = 1.00000 + 5761 = 1.00000 + 5774 = 1.00000 + 5775 = 1.00000 + 5778 = 1.00000 + 5780 = 1.00000 + 5779 = 1.00000 + 5781 = 1.00000 + 5786 = 1.00000 + 5787 = 1.00000 + 5790 = 1.00000 + 5791 = 1.00000 + 5792 = 1.00000 + 5793 = 1.00000 + 5818 = 1.00000 + 5819 = 1.00000 + 5820 = 1.00000 + 5821 = 1.00000 + 5863 = 1.00000 + 5873 = 1.00000 + 5874 = 1.00000 + 5879 = 1.00000 + 5880 = 1.00000 + 5899 = 1.00000 + 5900 = 1.00000 + 5901 = 1.00000 + 5902 = 1.00000 + 6024 = 1.00000 + 6027 = 1.00000 + 6028 = 1.00000 + 6039 = 1.00000 + 6040 = 1.00000 + 6045 = 1.00000 + 6046 = 1.00000 + 6047 = 1.00000 + 6048 = 1.00000 + 6106 = 1.00000 + 6116 = 1.00000 + 6117 = 1.00000 + 6122 = 1.00000 + 6123 = 1.00000 + 6142 = 1.00000 + 6143 = 1.00000 + 6144 = 1.00000 + 6145 = 1.00000 + 6186 = 1.00000 + 6187 = 1.00000 + 6189 = 1.00000 + 6190 = 1.00000 + 6197 = 1.00000 + 6198 = 1.00000 + 6201 = 1.00000 + 6203 = 1.00000 + 6202 = 1.00000 + 6204 = 1.00000 + 6207 = 1.00000 + 6208 = 1.00000 + 6209 = 1.00000 + 6210 = 1.00000 + 6223 = 1.00000 + 6224 = 1.00000 + 6225 = 1.00000 + 6226 = 1.00000 + 6348 = 1.00000 + 6351 = 1.00000 + 6352 = 1.00000 + 6363 = 1.00000 + 6364 = 1.00000 + 6369 = 1.00000 + 6370 = 1.00000 + 6371 = 1.00000 + 6372 = 1.00000 + 6430 = 1.00000 + 6440 = 1.00000 + 6441 = 1.00000 + 6446 = 1.00000 + 6447 = 1.00000 + 6466 = 1.00000 + 6467 = 1.00000 + 6468 = 1.00000 + 6469 = 1.00000 + 6510 = 1.00000 + 6511 = 1.00000 + 6513 = 1.00000 + 6514 = 1.00000 + 6521 = 1.00000 + 6522 = 1.00000 + 6525 = 1.00000 + 6527 = 1.00000 + 6526 = 1.00000 + 6528 = 1.00000 + 6531 = 1.00000 + 6532 = 1.00000 + 6533 = 1.00000 + 6534 = 1.00000 + 6547 = 1.00000 + 6548 = 1.00000 + 6549 = 1.00000 + 6550 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=5 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 4 = 1.00000 + 5 = 1.00000 + 6 = 1.00000 + 8 = 1.00000 + 11 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 16 = 1.00000 + 18 = 1.00000 + 24 = 1.00000 + 28 = 1.00000 + 25 = 1.00000 + 29 = 1.00000 + 34 = 1.00000 + 35 = 1.00000 + 38 = 1.00000 + 40 = 1.00000 + 39 = 1.00000 + 41 = 1.00000 + 46 = 1.00000 + 47 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 62 = 1.00000 + 63 = 1.00000 + 72 = 1.00000 + 74 = 1.00000 + 73 = 1.00000 + 75 = 1.00000 + 80 = 1.00000 + 81 = 1.00000 + 84 = 1.00000 + 85 = 1.00000 + 96 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 99 = 1.00000 + 124 = 1.00000 + 125 = 1.00000 + 126 = 1.00000 + 127 = 1.00000 + 152 = 1.00000 + 153 = 1.00000 + 154 = 1.00000 + 155 = 1.00000 + 193 = 1.00000 + 194 = 1.00000 + 197 = 1.00000 + 199 = 1.00000 + 208 = 1.00000 + 209 = 1.00000 + 212 = 1.00000 + 214 = 1.00000 + 213 = 1.00000 + 215 = 1.00000 + 220 = 1.00000 + 221 = 1.00000 + 230 = 1.00000 + 231 = 1.00000 + 242 = 1.00000 + 243 = 1.00000 + 268 = 1.00000 + 269 = 1.00000 + 270 = 1.00000 + 271 = 1.00000 + 296 = 1.00000 + 297 = 1.00000 + 298 = 1.00000 + 299 = 1.00000 + 336 = 1.00000 + 338 = 1.00000 + 341 = 1.00000 + 342 = 1.00000 + 348 = 1.00000 + 352 = 1.00000 + 349 = 1.00000 + 353 = 1.00000 + 358 = 1.00000 + 359 = 1.00000 + 364 = 1.00000 + 365 = 1.00000 + 366 = 1.00000 + 367 = 1.00000 + 384 = 1.00000 + 385 = 1.00000 + 396 = 1.00000 + 397 = 1.00000 + 398 = 1.00000 + 399 = 1.00000 + 440 = 1.00000 + 441 = 1.00000 + 442 = 1.00000 + 443 = 1.00000 + 482 = 1.00000 + 490 = 1.00000 + 491 = 1.00000 + 496 = 1.00000 + 497 = 1.00000 + 548 = 1.00000 + 549 = 1.00000 + 550 = 1.00000 + 551 = 1.00000 + 588 = 1.00000 + 589 = 1.00000 + 592 = 1.00000 + 594 = 1.00000 + 600 = 1.00000 + 601 = 1.00000 + 614 = 1.00000 + 615 = 1.00000 + 624 = 1.00000 + 626 = 1.00000 + 625 = 1.00000 + 627 = 1.00000 + 632 = 1.00000 + 633 = 1.00000 + 636 = 1.00000 + 637 = 1.00000 + 648 = 1.00000 + 649 = 1.00000 + 650 = 1.00000 + 651 = 1.00000 + 676 = 1.00000 + 677 = 1.00000 + 678 = 1.00000 + 679 = 1.00000 + 733 = 1.00000 + 746 = 1.00000 + 747 = 1.00000 + 758 = 1.00000 + 759 = 1.00000 + 784 = 1.00000 + 785 = 1.00000 + 786 = 1.00000 + 787 = 1.00000 + 840 = 1.00000 + 846 = 1.00000 + 847 = 1.00000 + 864 = 1.00000 + 865 = 1.00000 + 876 = 1.00000 + 877 = 1.00000 + 878 = 1.00000 + 879 = 1.00000 + 1030 = 1.00000 + 1031 = 1.00000 + 1034 = 1.00000 + 1036 = 1.00000 + 1045 = 1.00000 + 1046 = 1.00000 + 1049 = 1.00000 + 1051 = 1.00000 + 1050 = 1.00000 + 1052 = 1.00000 + 1057 = 1.00000 + 1058 = 1.00000 + 1067 = 1.00000 + 1068 = 1.00000 + 1079 = 1.00000 + 1080 = 1.00000 + 1105 = 1.00000 + 1106 = 1.00000 + 1107 = 1.00000 + 1108 = 1.00000 + 1133 = 1.00000 + 1134 = 1.00000 + 1135 = 1.00000 + 1136 = 1.00000 + 1173 = 1.00000 + 1174 = 1.00000 + 1175 = 1.00000 + 1176 = 1.00000 + 1178 = 1.00000 + 1179 = 1.00000 + 1180 = 1.00000 + 1182 = 1.00000 + 1185 = 1.00000 + 1189 = 1.00000 + 1186 = 1.00000 + 1190 = 1.00000 + 1193 = 1.00000 + 1195 = 1.00000 + 1194 = 1.00000 + 1196 = 1.00000 + 1201 = 1.00000 + 1202 = 1.00000 + 1203 = 1.00000 + 1204 = 1.00000 + 1211 = 1.00000 + 1212 = 1.00000 + 1221 = 1.00000 + 1223 = 1.00000 + 1222 = 1.00000 + 1224 = 1.00000 + 1227 = 1.00000 + 1228 = 1.00000 + 1233 = 1.00000 + 1234 = 1.00000 + 1235 = 1.00000 + 1236 = 1.00000 + 1249 = 1.00000 + 1250 = 1.00000 + 1251 = 1.00000 + 1252 = 1.00000 + 1277 = 1.00000 + 1278 = 1.00000 + 1279 = 1.00000 + 1280 = 1.00000 + 1319 = 1.00000 + 1327 = 1.00000 + 1328 = 1.00000 + 1333 = 1.00000 + 1334 = 1.00000 + 1385 = 1.00000 + 1386 = 1.00000 + 1387 = 1.00000 + 1388 = 1.00000 + 1425 = 1.00000 + 1427 = 1.00000 + 1428 = 1.00000 + 1431 = 1.00000 + 1435 = 1.00000 + 1432 = 1.00000 + 1436 = 1.00000 + 1441 = 1.00000 + 1442 = 1.00000 + 1443 = 1.00000 + 1444 = 1.00000 + 1455 = 1.00000 + 1456 = 1.00000 + 1461 = 1.00000 + 1462 = 1.00000 + 1463 = 1.00000 + 1464 = 1.00000 + 1493 = 1.00000 + 1494 = 1.00000 + 1495 = 1.00000 + 1496 = 1.00000 + 1534 = 1.00000 + 1547 = 1.00000 + 1548 = 1.00000 + 1559 = 1.00000 + 1560 = 1.00000 + 1585 = 1.00000 + 1586 = 1.00000 + 1587 = 1.00000 + 1588 = 1.00000 + 1641 = 1.00000 + 1642 = 1.00000 + 1644 = 1.00000 + 1647 = 1.00000 + 1648 = 1.00000 + 1655 = 1.00000 + 1656 = 1.00000 + 1665 = 1.00000 + 1667 = 1.00000 + 1666 = 1.00000 + 1668 = 1.00000 + 1671 = 1.00000 + 1672 = 1.00000 + 1677 = 1.00000 + 1678 = 1.00000 + 1679 = 1.00000 + 1680 = 1.00000 + 1693 = 1.00000 + 1694 = 1.00000 + 1695 = 1.00000 + 1696 = 1.00000 + 1830 = 1.00000 + 1833 = 1.00000 + 1834 = 1.00000 + 1845 = 1.00000 + 1846 = 1.00000 + 1851 = 1.00000 + 1852 = 1.00000 + 1853 = 1.00000 + 1854 = 1.00000 + 1911 = 1.00000 + 1913 = 1.00000 + 1916 = 1.00000 + 1917 = 1.00000 + 1923 = 1.00000 + 1927 = 1.00000 + 1924 = 1.00000 + 1928 = 1.00000 + 1933 = 1.00000 + 1934 = 1.00000 + 1939 = 1.00000 + 1940 = 1.00000 + 1941 = 1.00000 + 1942 = 1.00000 + 1959 = 1.00000 + 1960 = 1.00000 + 1971 = 1.00000 + 1972 = 1.00000 + 1973 = 1.00000 + 1974 = 1.00000 + 2015 = 1.00000 + 2016 = 1.00000 + 2017 = 1.00000 + 2018 = 1.00000 + 2057 = 1.00000 + 2065 = 1.00000 + 2066 = 1.00000 + 2071 = 1.00000 + 2072 = 1.00000 + 2123 = 1.00000 + 2124 = 1.00000 + 2125 = 1.00000 + 2126 = 1.00000 + 2163 = 1.00000 + 2164 = 1.00000 + 2165 = 1.00000 + 2167 = 1.00000 + 2168 = 1.00000 + 2169 = 1.00000 + 2170 = 1.00000 + 2173 = 1.00000 + 2175 = 1.00000 + 2179 = 1.00000 + 2176 = 1.00000 + 2180 = 1.00000 + 2185 = 1.00000 + 2186 = 1.00000 + 2189 = 1.00000 + 2191 = 1.00000 + 2190 = 1.00000 + 2192 = 1.00000 + 2193 = 1.00000 + 2194 = 1.00000 + 2207 = 1.00000 + 2208 = 1.00000 + 2211 = 1.00000 + 2213 = 1.00000 + 2212 = 1.00000 + 2214 = 1.00000 + 2219 = 1.00000 + 2220 = 1.00000 + 2223 = 1.00000 + 2224 = 1.00000 + 2225 = 1.00000 + 2226 = 1.00000 + 2251 = 1.00000 + 2252 = 1.00000 + 2253 = 1.00000 + 2254 = 1.00000 + 2267 = 1.00000 + 2268 = 1.00000 + 2269 = 1.00000 + 2270 = 1.00000 + 2308 = 1.00000 + 2309 = 1.00000 + 2311 = 1.00000 + 2317 = 1.00000 + 2318 = 1.00000 + 2321 = 1.00000 + 2323 = 1.00000 + 2322 = 1.00000 + 2324 = 1.00000 + 2333 = 1.00000 + 2334 = 1.00000 + 2339 = 1.00000 + 2340 = 1.00000 + 2359 = 1.00000 + 2360 = 1.00000 + 2361 = 1.00000 + 2362 = 1.00000 + 2375 = 1.00000 + 2376 = 1.00000 + 2377 = 1.00000 + 2378 = 1.00000 + 2415 = 1.00000 + 2421 = 1.00000 + 2422 = 1.00000 + 2439 = 1.00000 + 2440 = 1.00000 + 2451 = 1.00000 + 2452 = 1.00000 + 2453 = 1.00000 + 2454 = 1.00000 + 2604 = 1.00000 + 2605 = 1.00000 + 2608 = 1.00000 + 2610 = 1.00000 + 2611 = 1.00000 + 2624 = 1.00000 + 2625 = 1.00000 + 2628 = 1.00000 + 2630 = 1.00000 + 2629 = 1.00000 + 2631 = 1.00000 + 2636 = 1.00000 + 2637 = 1.00000 + 2640 = 1.00000 + 2641 = 1.00000 + 2642 = 1.00000 + 2643 = 1.00000 + 2668 = 1.00000 + 2669 = 1.00000 + 2670 = 1.00000 + 2671 = 1.00000 + 2713 = 1.00000 + 2723 = 1.00000 + 2724 = 1.00000 + 2729 = 1.00000 + 2730 = 1.00000 + 2749 = 1.00000 + 2750 = 1.00000 + 2751 = 1.00000 + 2752 = 1.00000 + 2795 = 1.00000 + 2803 = 1.00000 + 2804 = 1.00000 + 2809 = 1.00000 + 2810 = 1.00000 + 2861 = 1.00000 + 2862 = 1.00000 + 2863 = 1.00000 + 2864 = 1.00000 + 2901 = 1.00000 + 2903 = 1.00000 + 2904 = 1.00000 + 2907 = 1.00000 + 2911 = 1.00000 + 2908 = 1.00000 + 2912 = 1.00000 + 2917 = 1.00000 + 2918 = 1.00000 + 2919 = 1.00000 + 2920 = 1.00000 + 2931 = 1.00000 + 2932 = 1.00000 + 2937 = 1.00000 + 2938 = 1.00000 + 2939 = 1.00000 + 2940 = 1.00000 + 2969 = 1.00000 + 2970 = 1.00000 + 2971 = 1.00000 + 2972 = 1.00000 + 3010 = 1.00000 + 3011 = 1.00000 + 3013 = 1.00000 + 3019 = 1.00000 + 3020 = 1.00000 + 3023 = 1.00000 + 3025 = 1.00000 + 3024 = 1.00000 + 3026 = 1.00000 + 3035 = 1.00000 + 3036 = 1.00000 + 3041 = 1.00000 + 3042 = 1.00000 + 3061 = 1.00000 + 3062 = 1.00000 + 3063 = 1.00000 + 3064 = 1.00000 + 3077 = 1.00000 + 3078 = 1.00000 + 3079 = 1.00000 + 3080 = 1.00000 + 3117 = 1.00000 + 3118 = 1.00000 + 3119 = 1.00000 + 3120 = 1.00000 + 3121 = 1.00000 + 3123 = 1.00000 + 3127 = 1.00000 + 3124 = 1.00000 + 3128 = 1.00000 + 3131 = 1.00000 + 3133 = 1.00000 + 3132 = 1.00000 + 3134 = 1.00000 + 3135 = 1.00000 + 3136 = 1.00000 + 3143 = 1.00000 + 3144 = 1.00000 + 3147 = 1.00000 + 3149 = 1.00000 + 3148 = 1.00000 + 3150 = 1.00000 + 3153 = 1.00000 + 3154 = 1.00000 + 3155 = 1.00000 + 3156 = 1.00000 + 3169 = 1.00000 + 3170 = 1.00000 + 3171 = 1.00000 + 3172 = 1.00000 + 3185 = 1.00000 + 3186 = 1.00000 + 3187 = 1.00000 + 3188 = 1.00000 + 3306 = 1.00000 + 3309 = 1.00000 + 3310 = 1.00000 + 3321 = 1.00000 + 3322 = 1.00000 + 3327 = 1.00000 + 3328 = 1.00000 + 3329 = 1.00000 + 3330 = 1.00000 + 3388 = 1.00000 + 3398 = 1.00000 + 3399 = 1.00000 + 3404 = 1.00000 + 3405 = 1.00000 + 3424 = 1.00000 + 3425 = 1.00000 + 3426 = 1.00000 + 3427 = 1.00000 + 3468 = 1.00000 + 3469 = 1.00000 + 3471 = 1.00000 + 3472 = 1.00000 + 3479 = 1.00000 + 3480 = 1.00000 + 3483 = 1.00000 + 3485 = 1.00000 + 3484 = 1.00000 + 3486 = 1.00000 + 3489 = 1.00000 + 3490 = 1.00000 + 3491 = 1.00000 + 3492 = 1.00000 + 3505 = 1.00000 + 3506 = 1.00000 + 3507 = 1.00000 + 3508 = 1.00000 + 3549 = 1.00000 + 3550 = 1.00000 + 3553 = 1.00000 + 3555 = 1.00000 + 3561 = 1.00000 + 3562 = 1.00000 + 3575 = 1.00000 + 3576 = 1.00000 + 3585 = 1.00000 + 3587 = 1.00000 + 3586 = 1.00000 + 3588 = 1.00000 + 3593 = 1.00000 + 3594 = 1.00000 + 3597 = 1.00000 + 3598 = 1.00000 + 3609 = 1.00000 + 3610 = 1.00000 + 3611 = 1.00000 + 3612 = 1.00000 + 3637 = 1.00000 + 3638 = 1.00000 + 3639 = 1.00000 + 3640 = 1.00000 + 3694 = 1.00000 + 3707 = 1.00000 + 3708 = 1.00000 + 3719 = 1.00000 + 3720 = 1.00000 + 3745 = 1.00000 + 3746 = 1.00000 + 3747 = 1.00000 + 3748 = 1.00000 + 3801 = 1.00000 + 3807 = 1.00000 + 3808 = 1.00000 + 3825 = 1.00000 + 3826 = 1.00000 + 3837 = 1.00000 + 3838 = 1.00000 + 3839 = 1.00000 + 3840 = 1.00000 + 3990 = 1.00000 + 3991 = 1.00000 + 3992 = 1.00000 + 3994 = 1.00000 + 3995 = 1.00000 + 3996 = 1.00000 + 3998 = 1.00000 + 4001 = 1.00000 + 4002 = 1.00000 + 4006 = 1.00000 + 4003 = 1.00000 + 4007 = 1.00000 + 4012 = 1.00000 + 4013 = 1.00000 + 4016 = 1.00000 + 4018 = 1.00000 + 4017 = 1.00000 + 4019 = 1.00000 + 4024 = 1.00000 + 4025 = 1.00000 + 4026 = 1.00000 + 4028 = 1.00000 + 4027 = 1.00000 + 4029 = 1.00000 + 4034 = 1.00000 + 4035 = 1.00000 + 4038 = 1.00000 + 4039 = 1.00000 + 4050 = 1.00000 + 4051 = 1.00000 + 4052 = 1.00000 + 4053 = 1.00000 + 4078 = 1.00000 + 4079 = 1.00000 + 4080 = 1.00000 + 4081 = 1.00000 + 4106 = 1.00000 + 4107 = 1.00000 + 4108 = 1.00000 + 4109 = 1.00000 + 4135 = 1.00000 + 4136 = 1.00000 + 4139 = 1.00000 + 4144 = 1.00000 + 4145 = 1.00000 + 4148 = 1.00000 + 4150 = 1.00000 + 4149 = 1.00000 + 4151 = 1.00000 + 4156 = 1.00000 + 4157 = 1.00000 + 4160 = 1.00000 + 4161 = 1.00000 + 4186 = 1.00000 + 4187 = 1.00000 + 4188 = 1.00000 + 4189 = 1.00000 + 4214 = 1.00000 + 4215 = 1.00000 + 4216 = 1.00000 + 4217 = 1.00000 + 4242 = 1.00000 + 4244 = 1.00000 + 4247 = 1.00000 + 4248 = 1.00000 + 4252 = 1.00000 + 4249 = 1.00000 + 4253 = 1.00000 + 4258 = 1.00000 + 4259 = 1.00000 + 4264 = 1.00000 + 4265 = 1.00000 + 4266 = 1.00000 + 4267 = 1.00000 + 4278 = 1.00000 + 4279 = 1.00000 + 4280 = 1.00000 + 4281 = 1.00000 + 4322 = 1.00000 + 4323 = 1.00000 + 4324 = 1.00000 + 4325 = 1.00000 + 4352 = 1.00000 + 4357 = 1.00000 + 4358 = 1.00000 + 4363 = 1.00000 + 4364 = 1.00000 + 4403 = 1.00000 + 4404 = 1.00000 + 4405 = 1.00000 + 4406 = 1.00000 + 4432 = 1.00000 + 4445 = 1.00000 + 4446 = 1.00000 + 4457 = 1.00000 + 4458 = 1.00000 + 4483 = 1.00000 + 4484 = 1.00000 + 4485 = 1.00000 + 4486 = 1.00000 + 4539 = 1.00000 + 4540 = 1.00000 + 4542 = 1.00000 + 4545 = 1.00000 + 4546 = 1.00000 + 4553 = 1.00000 + 4554 = 1.00000 + 4563 = 1.00000 + 4565 = 1.00000 + 4564 = 1.00000 + 4566 = 1.00000 + 4569 = 1.00000 + 4570 = 1.00000 + 4575 = 1.00000 + 4576 = 1.00000 + 4577 = 1.00000 + 4578 = 1.00000 + 4591 = 1.00000 + 4592 = 1.00000 + 4593 = 1.00000 + 4594 = 1.00000 + 4728 = 1.00000 + 4731 = 1.00000 + 4732 = 1.00000 + 4743 = 1.00000 + 4744 = 1.00000 + 4749 = 1.00000 + 4750 = 1.00000 + 4751 = 1.00000 + 4752 = 1.00000 + 4810 = 1.00000 + 4811 = 1.00000 + 4814 = 1.00000 + 4819 = 1.00000 + 4820 = 1.00000 + 4823 = 1.00000 + 4825 = 1.00000 + 4824 = 1.00000 + 4826 = 1.00000 + 4831 = 1.00000 + 4832 = 1.00000 + 4835 = 1.00000 + 4836 = 1.00000 + 4861 = 1.00000 + 4862 = 1.00000 + 4863 = 1.00000 + 4864 = 1.00000 + 4889 = 1.00000 + 4890 = 1.00000 + 4891 = 1.00000 + 4892 = 1.00000 + 4917 = 1.00000 + 4918 = 1.00000 + 4919 = 1.00000 + 4920 = 1.00000 + 4922 = 1.00000 + 4923 = 1.00000 + 4927 = 1.00000 + 4924 = 1.00000 + 4928 = 1.00000 + 4931 = 1.00000 + 4933 = 1.00000 + 4932 = 1.00000 + 4934 = 1.00000 + 4939 = 1.00000 + 4940 = 1.00000 + 4941 = 1.00000 + 4943 = 1.00000 + 4942 = 1.00000 + 4944 = 1.00000 + 4947 = 1.00000 + 4948 = 1.00000 + 4953 = 1.00000 + 4954 = 1.00000 + 4955 = 1.00000 + 4956 = 1.00000 + 4969 = 1.00000 + 4970 = 1.00000 + 4971 = 1.00000 + 4972 = 1.00000 + 4997 = 1.00000 + 4998 = 1.00000 + 4999 = 1.00000 + 5000 = 1.00000 + 5027 = 1.00000 + 5032 = 1.00000 + 5033 = 1.00000 + 5038 = 1.00000 + 5039 = 1.00000 + 5078 = 1.00000 + 5079 = 1.00000 + 5080 = 1.00000 + 5081 = 1.00000 + 5106 = 1.00000 + 5108 = 1.00000 + 5109 = 1.00000 + 5113 = 1.00000 + 5110 = 1.00000 + 5114 = 1.00000 + 5119 = 1.00000 + 5120 = 1.00000 + 5121 = 1.00000 + 5122 = 1.00000 + 5127 = 1.00000 + 5128 = 1.00000 + 5129 = 1.00000 + 5130 = 1.00000 + 5159 = 1.00000 + 5160 = 1.00000 + 5161 = 1.00000 + 5162 = 1.00000 + 5187 = 1.00000 + 5193 = 1.00000 + 5194 = 1.00000 + 5211 = 1.00000 + 5212 = 1.00000 + 5223 = 1.00000 + 5224 = 1.00000 + 5225 = 1.00000 + 5226 = 1.00000 + 5376 = 1.00000 + 5377 = 1.00000 + 5380 = 1.00000 + 5382 = 1.00000 + 5383 = 1.00000 + 5396 = 1.00000 + 5397 = 1.00000 + 5400 = 1.00000 + 5402 = 1.00000 + 5401 = 1.00000 + 5403 = 1.00000 + 5408 = 1.00000 + 5409 = 1.00000 + 5412 = 1.00000 + 5413 = 1.00000 + 5414 = 1.00000 + 5415 = 1.00000 + 5440 = 1.00000 + 5441 = 1.00000 + 5442 = 1.00000 + 5443 = 1.00000 + 5485 = 1.00000 + 5495 = 1.00000 + 5496 = 1.00000 + 5501 = 1.00000 + 5502 = 1.00000 + 5521 = 1.00000 + 5522 = 1.00000 + 5523 = 1.00000 + 5524 = 1.00000 + 5565 = 1.00000 + 5567 = 1.00000 + 5570 = 1.00000 + 5571 = 1.00000 + 5575 = 1.00000 + 5572 = 1.00000 + 5576 = 1.00000 + 5581 = 1.00000 + 5582 = 1.00000 + 5587 = 1.00000 + 5588 = 1.00000 + 5589 = 1.00000 + 5590 = 1.00000 + 5601 = 1.00000 + 5602 = 1.00000 + 5603 = 1.00000 + 5604 = 1.00000 + 5645 = 1.00000 + 5646 = 1.00000 + 5647 = 1.00000 + 5648 = 1.00000 + 5675 = 1.00000 + 5680 = 1.00000 + 5681 = 1.00000 + 5686 = 1.00000 + 5687 = 1.00000 + 5726 = 1.00000 + 5727 = 1.00000 + 5728 = 1.00000 + 5729 = 1.00000 + 5754 = 1.00000 + 5755 = 1.00000 + 5756 = 1.00000 + 5758 = 1.00000 + 5759 = 1.00000 + 5760 = 1.00000 + 5764 = 1.00000 + 5761 = 1.00000 + 5765 = 1.00000 + 5770 = 1.00000 + 5771 = 1.00000 + 5774 = 1.00000 + 5776 = 1.00000 + 5775 = 1.00000 + 5777 = 1.00000 + 5778 = 1.00000 + 5780 = 1.00000 + 5779 = 1.00000 + 5781 = 1.00000 + 5786 = 1.00000 + 5787 = 1.00000 + 5790 = 1.00000 + 5791 = 1.00000 + 5792 = 1.00000 + 5793 = 1.00000 + 5818 = 1.00000 + 5819 = 1.00000 + 5820 = 1.00000 + 5821 = 1.00000 + 5834 = 1.00000 + 5835 = 1.00000 + 5836 = 1.00000 + 5837 = 1.00000 + 5863 = 1.00000 + 5864 = 1.00000 + 5869 = 1.00000 + 5870 = 1.00000 + 5873 = 1.00000 + 5875 = 1.00000 + 5874 = 1.00000 + 5876 = 1.00000 + 5879 = 1.00000 + 5880 = 1.00000 + 5899 = 1.00000 + 5900 = 1.00000 + 5901 = 1.00000 + 5902 = 1.00000 + 5915 = 1.00000 + 5916 = 1.00000 + 5917 = 1.00000 + 5918 = 1.00000 + 6024 = 1.00000 + 6027 = 1.00000 + 6028 = 1.00000 + 6039 = 1.00000 + 6040 = 1.00000 + 6045 = 1.00000 + 6046 = 1.00000 + 6047 = 1.00000 + 6048 = 1.00000 + 6106 = 1.00000 + 6116 = 1.00000 + 6117 = 1.00000 + 6122 = 1.00000 + 6123 = 1.00000 + 6142 = 1.00000 + 6143 = 1.00000 + 6144 = 1.00000 + 6145 = 1.00000 + 6186 = 1.00000 + 6187 = 1.00000 + 6189 = 1.00000 + 6190 = 1.00000 + 6197 = 1.00000 + 6198 = 1.00000 + 6201 = 1.00000 + 6203 = 1.00000 + 6202 = 1.00000 + 6204 = 1.00000 + 6207 = 1.00000 + 6208 = 1.00000 + 6209 = 1.00000 + 6210 = 1.00000 + 6223 = 1.00000 + 6224 = 1.00000 + 6225 = 1.00000 + 6226 = 1.00000 + 6269 = 1.00000 + 6274 = 1.00000 + 6275 = 1.00000 + 6280 = 1.00000 + 6281 = 1.00000 + 6320 = 1.00000 + 6321 = 1.00000 + 6322 = 1.00000 + 6323 = 1.00000 + 6348 = 1.00000 + 6350 = 1.00000 + 6351 = 1.00000 + 6355 = 1.00000 + 6352 = 1.00000 + 6356 = 1.00000 + 6361 = 1.00000 + 6362 = 1.00000 + 6363 = 1.00000 + 6364 = 1.00000 + 6369 = 1.00000 + 6370 = 1.00000 + 6371 = 1.00000 + 6372 = 1.00000 + 6401 = 1.00000 + 6402 = 1.00000 + 6403 = 1.00000 + 6404 = 1.00000 + 6430 = 1.00000 + 6431 = 1.00000 + 6436 = 1.00000 + 6437 = 1.00000 + 6440 = 1.00000 + 6442 = 1.00000 + 6441 = 1.00000 + 6443 = 1.00000 + 6446 = 1.00000 + 6447 = 1.00000 + 6466 = 1.00000 + 6467 = 1.00000 + 6468 = 1.00000 + 6469 = 1.00000 + 6482 = 1.00000 + 6483 = 1.00000 + 6484 = 1.00000 + 6485 = 1.00000 + 6510 = 1.00000 + 6511 = 1.00000 + 6512 = 1.00000 + 6513 = 1.00000 + 6517 = 1.00000 + 6514 = 1.00000 + 6518 = 1.00000 + 6521 = 1.00000 + 6523 = 1.00000 + 6522 = 1.00000 + 6524 = 1.00000 + 6525 = 1.00000 + 6527 = 1.00000 + 6526 = 1.00000 + 6528 = 1.00000 + 6531 = 1.00000 + 6532 = 1.00000 + 6533 = 1.00000 + 6534 = 1.00000 + 6547 = 1.00000 + 6548 = 1.00000 + 6549 = 1.00000 + 6550 = 1.00000 + 6563 = 1.00000 + 6564 = 1.00000 + 6565 = 1.00000 + 6566 = 1.00000 diff --git a/tests/deal.II/tangential_flux_inhom_01.cc b/tests/deal.II/tangential_flux_inhom_01.cc new file mode 100644 index 0000000000..808cd5dee3 --- /dev/null +++ b/tests/deal.II/tangential_flux_inhom_01.cc @@ -0,0 +1,129 @@ +// --------------------------------------------------------------------- +// $Id: normal_flux_01.cc 31349 2013-10-20 19:07:06Z maier $ +// +// Copyright (C) 2007 - 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. +// +// --------------------------------------------------------------------- + + + +// check the creation of tangential flux boundary conditions for a finite +// element that consists of only a single set of vector components +// (i.e. it has dim components). Similar as the normal-flux test in +// normal_flux_inhom_01.cc + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + + +template +void test (const Triangulation &tr, + const FiniteElement &fe) +{ + DoFHandler dof(tr); + dof.distribute_dofs(fe); + + ConstantFunction constant_function(1.,dim); + typename FunctionMap::type function_map; + for (unsigned int j=0; j::faces_per_cell; ++j) + function_map[j] = &constant_function; + + for (unsigned int i=0; i::faces_per_cell; ++i) + { + deallog << "FE=" << fe.get_name() + << ", case=" << i + << std::endl; + + std::set boundary_ids; + for (unsigned int j=0; j<=i; ++j) + boundary_ids.insert (j); + + ConstraintMatrix cm; + VectorTools::compute_nonzero_tangential_flux_constraints + (dof, 0, boundary_ids, function_map, cm); + + cm.print (deallog.get_file_stream ()); + } + //Get the location of all boundary dofs + std::vector face_dofs; + const std::vector > & + unit_support_points = fe.get_unit_face_support_points(); + Quadrature quadrature(unit_support_points); + FEFaceValues fe_face_values(fe, quadrature, update_q_points); + typename DoFHandler::active_cell_iterator + cell = dof.begin_active(), + endc = dof.end(); + for (; cell!=endc; ++cell) + for (unsigned int face_no=0; face_no < GeometryInfo::faces_per_cell; + ++face_no) + if (cell->face(face_no)->at_boundary()) + { + typename DoFHandler::face_iterator face = cell->face(face_no); + face_dofs.resize (fe.dofs_per_face); + face->get_dof_indices (face_dofs); + + fe_face_values.reinit(cell, face_no); + for (unsigned int i=0; i +void test_hyper_cube() +{ + Triangulation tr; + GridGenerator::hyper_cube(tr); + + for (unsigned int i=0; i::faces_per_cell; ++i) + tr.begin_active()->face(i)->set_boundary_indicator (i); + + tr.refine_global(2); + + for (unsigned int degree=1; degree<4; ++degree) + { + FESystem fe (FE_Q(degree), dim); + test(tr, fe); + } +} + + +int main() +{ + std::ofstream logfile ("output"); + deallog << std::setprecision (2); + deallog << std::fixed; + deallog.attach(logfile); + deallog.depth_console (0); + deallog.threshold_double(1.e-12); + + test_hyper_cube<2>(); + test_hyper_cube<3>(); +} diff --git a/tests/deal.II/tangential_flux_inhom_01.output b/tests/deal.II/tangential_flux_inhom_01.output new file mode 100644 index 0000000000..368ee28bca --- /dev/null +++ b/tests/deal.II/tangential_flux_inhom_01.output @@ -0,0 +1,11149 @@ + +DEAL::FE=FESystem<2>[FE_Q<2>(1)^2], case=0 + 1 = 1.00000 + 5 = 1.00000 + 13 = 1.00000 + 31 = 1.00000 + 37 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(1)^2], case=1 + 1 = 1.00000 + 5 = 1.00000 + 13 = 1.00000 + 23 = 1.00000 + 25 = 1.00000 + 29 = 1.00000 + 31 = 1.00000 + 37 = 1.00000 + 45 = 1.00000 + 49 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(1)^2], case=2 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 5 = 1.00000 + 8 = 1.00000 + 13 = 1.00000 + 18 = 1.00000 + 22 = 1.00000 + 23 = 1.00000 + 25 = 1.00000 + 29 = 1.00000 + 31 = 1.00000 + 37 = 1.00000 + 45 = 1.00000 + 49 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(1)^2], case=3 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 5 = 1.00000 + 8 = 1.00000 + 13 = 1.00000 + 18 = 1.00000 + 22 = 1.00000 + 23 = 1.00000 + 25 = 1.00000 + 29 = 1.00000 + 31 = 1.00000 + 36 = 1.00000 + 37 = 1.00000 + 38 = 1.00000 + 40 = 1.00000 + 45 = 1.00000 + 46 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(2)^2], case=0 + 1 = 1.00000 + 5 = 1.00000 + 9 = 1.00000 + 31 = 1.00000 + 35 = 1.00000 + 91 = 1.00000 + 95 = 1.00000 + 111 = 1.00000 + 115 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(2)^2], case=1 + 1 = 1.00000 + 5 = 1.00000 + 9 = 1.00000 + 31 = 1.00000 + 35 = 1.00000 + 63 = 1.00000 + 65 = 1.00000 + 67 = 1.00000 + 83 = 1.00000 + 85 = 1.00000 + 91 = 1.00000 + 95 = 1.00000 + 111 = 1.00000 + 115 = 1.00000 + 139 = 1.00000 + 141 = 1.00000 + 155 = 1.00000 + 157 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(2)^2], case=2 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 5 = 1.00000 + 9 = 1.00000 + 12 = 1.00000 + 18 = 1.00000 + 24 = 1.00000 + 31 = 1.00000 + 35 = 1.00000 + 50 = 1.00000 + 56 = 1.00000 + 62 = 1.00000 + 63 = 1.00000 + 65 = 1.00000 + 67 = 1.00000 + 68 = 1.00000 + 83 = 1.00000 + 85 = 1.00000 + 91 = 1.00000 + 95 = 1.00000 + 111 = 1.00000 + 115 = 1.00000 + 139 = 1.00000 + 141 = 1.00000 + 155 = 1.00000 + 157 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(2)^2], case=3 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 5 = 1.00000 + 9 = 1.00000 + 12 = 1.00000 + 18 = 1.00000 + 24 = 1.00000 + 31 = 1.00000 + 35 = 1.00000 + 50 = 1.00000 + 56 = 1.00000 + 62 = 1.00000 + 63 = 1.00000 + 65 = 1.00000 + 67 = 1.00000 + 68 = 1.00000 + 83 = 1.00000 + 85 = 1.00000 + 91 = 1.00000 + 95 = 1.00000 + 110 = 1.00000 + 111 = 1.00000 + 112 = 1.00000 + 115 = 1.00000 + 118 = 1.00000 + 122 = 1.00000 + 126 = 1.00000 + 139 = 1.00000 + 141 = 1.00000 + 146 = 1.00000 + 150 = 1.00000 + 154 = 1.00000 + 155 = 1.00000 + 157 = 1.00000 + 158 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(3)^2], case=0 + 1 = 1.00000 + 5 = 1.00000 + 10 = 1.00000 + 11 = 1.00000 + 57 = 1.00000 + 62 = 1.00000 + 63 = 1.00000 + 183 = 1.00000 + 188 = 1.00000 + 189 = 1.00000 + 225 = 1.00000 + 230 = 1.00000 + 231 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(3)^2], case=1 + 1 = 1.00000 + 5 = 1.00000 + 10 = 1.00000 + 11 = 1.00000 + 57 = 1.00000 + 62 = 1.00000 + 63 = 1.00000 + 123 = 1.00000 + 125 = 1.00000 + 128 = 1.00000 + 129 = 1.00000 + 165 = 1.00000 + 168 = 1.00000 + 169 = 1.00000 + 183 = 1.00000 + 188 = 1.00000 + 189 = 1.00000 + 225 = 1.00000 + 230 = 1.00000 + 231 = 1.00000 + 285 = 1.00000 + 288 = 1.00000 + 289 = 1.00000 + 321 = 1.00000 + 324 = 1.00000 + 325 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(3)^2], case=2 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 5 = 1.00000 + 10 = 1.00000 + 11 = 1.00000 + 16 = 1.00000 + 17 = 1.00000 + 32 = 1.00000 + 40 = 1.00000 + 41 = 1.00000 + 57 = 1.00000 + 62 = 1.00000 + 63 = 1.00000 + 98 = 1.00000 + 106 = 1.00000 + 107 = 1.00000 + 122 = 1.00000 + 123 = 1.00000 + 125 = 1.00000 + 128 = 1.00000 + 129 = 1.00000 + 130 = 1.00000 + 131 = 1.00000 + 165 = 1.00000 + 168 = 1.00000 + 169 = 1.00000 + 183 = 1.00000 + 188 = 1.00000 + 189 = 1.00000 + 225 = 1.00000 + 230 = 1.00000 + 231 = 1.00000 + 285 = 1.00000 + 288 = 1.00000 + 289 = 1.00000 + 321 = 1.00000 + 324 = 1.00000 + 325 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(3)^2], case=3 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 5 = 1.00000 + 10 = 1.00000 + 11 = 1.00000 + 16 = 1.00000 + 17 = 1.00000 + 32 = 1.00000 + 40 = 1.00000 + 41 = 1.00000 + 57 = 1.00000 + 62 = 1.00000 + 63 = 1.00000 + 98 = 1.00000 + 106 = 1.00000 + 107 = 1.00000 + 122 = 1.00000 + 123 = 1.00000 + 125 = 1.00000 + 128 = 1.00000 + 129 = 1.00000 + 130 = 1.00000 + 131 = 1.00000 + 165 = 1.00000 + 168 = 1.00000 + 169 = 1.00000 + 183 = 1.00000 + 188 = 1.00000 + 189 = 1.00000 + 224 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 230 = 1.00000 + 231 = 1.00000 + 236 = 1.00000 + 237 = 1.00000 + 248 = 1.00000 + 254 = 1.00000 + 255 = 1.00000 + 285 = 1.00000 + 288 = 1.00000 + 289 = 1.00000 + 302 = 1.00000 + 308 = 1.00000 + 309 = 1.00000 + 320 = 1.00000 + 321 = 1.00000 + 324 = 1.00000 + 325 = 1.00000 + 326 = 1.00000 + 327 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=0 + 1 = 1.00000 + 2 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 37 = 1.00000 + 38 = 1.00000 + 43 = 1.00000 + 44 = 1.00000 + 55 = 1.00000 + 56 = 1.00000 + 61 = 1.00000 + 62 = 1.00000 + 73 = 1.00000 + 74 = 1.00000 + 136 = 1.00000 + 137 = 1.00000 + 142 = 1.00000 + 143 = 1.00000 + 154 = 1.00000 + 155 = 1.00000 + 160 = 1.00000 + 161 = 1.00000 + 172 = 1.00000 + 173 = 1.00000 + 181 = 1.00000 + 182 = 1.00000 + 226 = 1.00000 + 227 = 1.00000 + 232 = 1.00000 + 233 = 1.00000 + 244 = 1.00000 + 245 = 1.00000 + 253 = 1.00000 + 254 = 1.00000 + 259 = 1.00000 + 260 = 1.00000 + 271 = 1.00000 + 272 = 1.00000 + 316 = 1.00000 + 317 = 1.00000 + 325 = 1.00000 + 326 = 1.00000 + 334 = 1.00000 + 335 = 1.00000 + 343 = 1.00000 + 344 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=1 + 1 = 1.00000 + 2 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 37 = 1.00000 + 38 = 1.00000 + 43 = 1.00000 + 44 = 1.00000 + 55 = 1.00000 + 56 = 1.00000 + 61 = 1.00000 + 62 = 1.00000 + 73 = 1.00000 + 74 = 1.00000 + 94 = 1.00000 + 95 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 100 = 1.00000 + 101 = 1.00000 + 103 = 1.00000 + 104 = 1.00000 + 112 = 1.00000 + 113 = 1.00000 + 115 = 1.00000 + 116 = 1.00000 + 124 = 1.00000 + 125 = 1.00000 + 127 = 1.00000 + 128 = 1.00000 + 133 = 1.00000 + 134 = 1.00000 + 136 = 1.00000 + 137 = 1.00000 + 142 = 1.00000 + 143 = 1.00000 + 154 = 1.00000 + 155 = 1.00000 + 160 = 1.00000 + 161 = 1.00000 + 172 = 1.00000 + 173 = 1.00000 + 181 = 1.00000 + 182 = 1.00000 + 196 = 1.00000 + 197 = 1.00000 + 199 = 1.00000 + 200 = 1.00000 + 208 = 1.00000 + 209 = 1.00000 + 211 = 1.00000 + 212 = 1.00000 + 217 = 1.00000 + 218 = 1.00000 + 223 = 1.00000 + 224 = 1.00000 + 226 = 1.00000 + 227 = 1.00000 + 232 = 1.00000 + 233 = 1.00000 + 244 = 1.00000 + 245 = 1.00000 + 253 = 1.00000 + 254 = 1.00000 + 259 = 1.00000 + 260 = 1.00000 + 271 = 1.00000 + 272 = 1.00000 + 286 = 1.00000 + 287 = 1.00000 + 289 = 1.00000 + 290 = 1.00000 + 295 = 1.00000 + 296 = 1.00000 + 304 = 1.00000 + 305 = 1.00000 + 307 = 1.00000 + 308 = 1.00000 + 313 = 1.00000 + 314 = 1.00000 + 316 = 1.00000 + 317 = 1.00000 + 325 = 1.00000 + 326 = 1.00000 + 334 = 1.00000 + 335 = 1.00000 + 343 = 1.00000 + 344 = 1.00000 + 355 = 1.00000 + 356 = 1.00000 + 361 = 1.00000 + 362 = 1.00000 + 367 = 1.00000 + 368 = 1.00000 + 373 = 1.00000 + 374 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=2 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 3 = 1.00000 + 5 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 15 = 1.00000 + 17 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 24 = 1.00000 + 26 = 1.00000 + 30 = 1.00000 + 32 = 1.00000 + 37 = 1.00000 + 38 = 1.00000 + 43 = 1.00000 + 44 = 1.00000 + 54 = 1.00000 + 55 = 1.00000 + 56 = 1.00000 + 57 = 1.00000 + 59 = 1.00000 + 61 = 1.00000 + 62 = 1.00000 + 66 = 1.00000 + 68 = 1.00000 + 73 = 1.00000 + 74 = 1.00000 + 81 = 1.00000 + 83 = 1.00000 + 87 = 1.00000 + 89 = 1.00000 + 93 = 1.00000 + 94 = 1.00000 + 95 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 99 = 1.00000 + 100 = 1.00000 + 101 = 1.00000 + 103 = 1.00000 + 104 = 1.00000 + 112 = 1.00000 + 113 = 1.00000 + 115 = 1.00000 + 116 = 1.00000 + 117 = 1.00000 + 119 = 1.00000 + 123 = 1.00000 + 124 = 1.00000 + 125 = 1.00000 + 127 = 1.00000 + 128 = 1.00000 + 133 = 1.00000 + 134 = 1.00000 + 136 = 1.00000 + 137 = 1.00000 + 142 = 1.00000 + 143 = 1.00000 + 154 = 1.00000 + 155 = 1.00000 + 160 = 1.00000 + 161 = 1.00000 + 172 = 1.00000 + 173 = 1.00000 + 181 = 1.00000 + 182 = 1.00000 + 196 = 1.00000 + 197 = 1.00000 + 199 = 1.00000 + 200 = 1.00000 + 208 = 1.00000 + 209 = 1.00000 + 211 = 1.00000 + 212 = 1.00000 + 217 = 1.00000 + 218 = 1.00000 + 223 = 1.00000 + 224 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 227 = 1.00000 + 228 = 1.00000 + 230 = 1.00000 + 232 = 1.00000 + 233 = 1.00000 + 237 = 1.00000 + 239 = 1.00000 + 244 = 1.00000 + 245 = 1.00000 + 252 = 1.00000 + 253 = 1.00000 + 254 = 1.00000 + 255 = 1.00000 + 257 = 1.00000 + 259 = 1.00000 + 260 = 1.00000 + 264 = 1.00000 + 266 = 1.00000 + 271 = 1.00000 + 272 = 1.00000 + 279 = 1.00000 + 281 = 1.00000 + 285 = 1.00000 + 286 = 1.00000 + 287 = 1.00000 + 289 = 1.00000 + 290 = 1.00000 + 295 = 1.00000 + 296 = 1.00000 + 297 = 1.00000 + 299 = 1.00000 + 303 = 1.00000 + 304 = 1.00000 + 305 = 1.00000 + 307 = 1.00000 + 308 = 1.00000 + 313 = 1.00000 + 314 = 1.00000 + 316 = 1.00000 + 317 = 1.00000 + 325 = 1.00000 + 326 = 1.00000 + 334 = 1.00000 + 335 = 1.00000 + 343 = 1.00000 + 344 = 1.00000 + 355 = 1.00000 + 356 = 1.00000 + 361 = 1.00000 + 362 = 1.00000 + 367 = 1.00000 + 368 = 1.00000 + 373 = 1.00000 + 374 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=3 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 3 = 1.00000 + 5 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 15 = 1.00000 + 17 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 24 = 1.00000 + 26 = 1.00000 + 30 = 1.00000 + 32 = 1.00000 + 37 = 1.00000 + 38 = 1.00000 + 43 = 1.00000 + 44 = 1.00000 + 54 = 1.00000 + 55 = 1.00000 + 56 = 1.00000 + 57 = 1.00000 + 59 = 1.00000 + 61 = 1.00000 + 62 = 1.00000 + 66 = 1.00000 + 68 = 1.00000 + 73 = 1.00000 + 74 = 1.00000 + 81 = 1.00000 + 83 = 1.00000 + 87 = 1.00000 + 89 = 1.00000 + 93 = 1.00000 + 94 = 1.00000 + 95 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 99 = 1.00000 + 100 = 1.00000 + 101 = 1.00000 + 103 = 1.00000 + 104 = 1.00000 + 112 = 1.00000 + 113 = 1.00000 + 115 = 1.00000 + 116 = 1.00000 + 117 = 1.00000 + 119 = 1.00000 + 123 = 1.00000 + 124 = 1.00000 + 125 = 1.00000 + 127 = 1.00000 + 128 = 1.00000 + 133 = 1.00000 + 134 = 1.00000 + 136 = 1.00000 + 137 = 1.00000 + 142 = 1.00000 + 143 = 1.00000 + 153 = 1.00000 + 154 = 1.00000 + 155 = 1.00000 + 156 = 1.00000 + 158 = 1.00000 + 159 = 1.00000 + 160 = 1.00000 + 161 = 1.00000 + 162 = 1.00000 + 164 = 1.00000 + 165 = 1.00000 + 167 = 1.00000 + 168 = 1.00000 + 170 = 1.00000 + 172 = 1.00000 + 173 = 1.00000 + 180 = 1.00000 + 181 = 1.00000 + 182 = 1.00000 + 183 = 1.00000 + 185 = 1.00000 + 186 = 1.00000 + 188 = 1.00000 + 196 = 1.00000 + 197 = 1.00000 + 199 = 1.00000 + 200 = 1.00000 + 201 = 1.00000 + 203 = 1.00000 + 204 = 1.00000 + 206 = 1.00000 + 207 = 1.00000 + 208 = 1.00000 + 209 = 1.00000 + 210 = 1.00000 + 211 = 1.00000 + 212 = 1.00000 + 217 = 1.00000 + 218 = 1.00000 + 219 = 1.00000 + 221 = 1.00000 + 222 = 1.00000 + 223 = 1.00000 + 224 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 227 = 1.00000 + 228 = 1.00000 + 230 = 1.00000 + 232 = 1.00000 + 233 = 1.00000 + 237 = 1.00000 + 239 = 1.00000 + 244 = 1.00000 + 245 = 1.00000 + 252 = 1.00000 + 253 = 1.00000 + 254 = 1.00000 + 255 = 1.00000 + 257 = 1.00000 + 259 = 1.00000 + 260 = 1.00000 + 264 = 1.00000 + 266 = 1.00000 + 271 = 1.00000 + 272 = 1.00000 + 279 = 1.00000 + 281 = 1.00000 + 285 = 1.00000 + 286 = 1.00000 + 287 = 1.00000 + 289 = 1.00000 + 290 = 1.00000 + 295 = 1.00000 + 296 = 1.00000 + 297 = 1.00000 + 299 = 1.00000 + 303 = 1.00000 + 304 = 1.00000 + 305 = 1.00000 + 307 = 1.00000 + 308 = 1.00000 + 313 = 1.00000 + 314 = 1.00000 + 316 = 1.00000 + 317 = 1.00000 + 324 = 1.00000 + 325 = 1.00000 + 326 = 1.00000 + 327 = 1.00000 + 329 = 1.00000 + 330 = 1.00000 + 332 = 1.00000 + 334 = 1.00000 + 335 = 1.00000 + 342 = 1.00000 + 343 = 1.00000 + 344 = 1.00000 + 345 = 1.00000 + 347 = 1.00000 + 348 = 1.00000 + 350 = 1.00000 + 355 = 1.00000 + 356 = 1.00000 + 357 = 1.00000 + 359 = 1.00000 + 360 = 1.00000 + 361 = 1.00000 + 362 = 1.00000 + 367 = 1.00000 + 368 = 1.00000 + 369 = 1.00000 + 371 = 1.00000 + 372 = 1.00000 + 373 = 1.00000 + 374 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=4 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 3 = 1.00000 + 4 = 1.00000 + 5 = 1.00000 + 6 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 9 = 1.00000 + 10 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 15 = 1.00000 + 17 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 24 = 1.00000 + 25 = 1.00000 + 26 = 1.00000 + 27 = 1.00000 + 28 = 1.00000 + 30 = 1.00000 + 32 = 1.00000 + 36 = 1.00000 + 37 = 1.00000 + 38 = 1.00000 + 39 = 1.00000 + 40 = 1.00000 + 43 = 1.00000 + 44 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 54 = 1.00000 + 55 = 1.00000 + 56 = 1.00000 + 57 = 1.00000 + 59 = 1.00000 + 61 = 1.00000 + 62 = 1.00000 + 66 = 1.00000 + 68 = 1.00000 + 73 = 1.00000 + 74 = 1.00000 + 81 = 1.00000 + 82 = 1.00000 + 83 = 1.00000 + 84 = 1.00000 + 85 = 1.00000 + 87 = 1.00000 + 89 = 1.00000 + 93 = 1.00000 + 94 = 1.00000 + 95 = 1.00000 + 96 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 99 = 1.00000 + 100 = 1.00000 + 101 = 1.00000 + 103 = 1.00000 + 104 = 1.00000 + 105 = 1.00000 + 106 = 1.00000 + 111 = 1.00000 + 112 = 1.00000 + 113 = 1.00000 + 115 = 1.00000 + 116 = 1.00000 + 117 = 1.00000 + 119 = 1.00000 + 123 = 1.00000 + 124 = 1.00000 + 125 = 1.00000 + 127 = 1.00000 + 128 = 1.00000 + 133 = 1.00000 + 134 = 1.00000 + 135 = 1.00000 + 136 = 1.00000 + 137 = 1.00000 + 138 = 1.00000 + 139 = 1.00000 + 142 = 1.00000 + 143 = 1.00000 + 147 = 1.00000 + 148 = 1.00000 + 153 = 1.00000 + 154 = 1.00000 + 155 = 1.00000 + 156 = 1.00000 + 157 = 1.00000 + 158 = 1.00000 + 159 = 1.00000 + 160 = 1.00000 + 161 = 1.00000 + 162 = 1.00000 + 164 = 1.00000 + 165 = 1.00000 + 166 = 1.00000 + 167 = 1.00000 + 168 = 1.00000 + 170 = 1.00000 + 172 = 1.00000 + 173 = 1.00000 + 180 = 1.00000 + 181 = 1.00000 + 182 = 1.00000 + 183 = 1.00000 + 185 = 1.00000 + 186 = 1.00000 + 188 = 1.00000 + 189 = 1.00000 + 190 = 1.00000 + 195 = 1.00000 + 196 = 1.00000 + 197 = 1.00000 + 199 = 1.00000 + 200 = 1.00000 + 201 = 1.00000 + 202 = 1.00000 + 203 = 1.00000 + 204 = 1.00000 + 206 = 1.00000 + 207 = 1.00000 + 208 = 1.00000 + 209 = 1.00000 + 210 = 1.00000 + 211 = 1.00000 + 212 = 1.00000 + 217 = 1.00000 + 218 = 1.00000 + 219 = 1.00000 + 221 = 1.00000 + 222 = 1.00000 + 223 = 1.00000 + 224 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 227 = 1.00000 + 228 = 1.00000 + 230 = 1.00000 + 232 = 1.00000 + 233 = 1.00000 + 237 = 1.00000 + 239 = 1.00000 + 244 = 1.00000 + 245 = 1.00000 + 252 = 1.00000 + 253 = 1.00000 + 254 = 1.00000 + 255 = 1.00000 + 257 = 1.00000 + 259 = 1.00000 + 260 = 1.00000 + 264 = 1.00000 + 266 = 1.00000 + 271 = 1.00000 + 272 = 1.00000 + 279 = 1.00000 + 281 = 1.00000 + 285 = 1.00000 + 286 = 1.00000 + 287 = 1.00000 + 289 = 1.00000 + 290 = 1.00000 + 295 = 1.00000 + 296 = 1.00000 + 297 = 1.00000 + 299 = 1.00000 + 303 = 1.00000 + 304 = 1.00000 + 305 = 1.00000 + 307 = 1.00000 + 308 = 1.00000 + 313 = 1.00000 + 314 = 1.00000 + 316 = 1.00000 + 317 = 1.00000 + 324 = 1.00000 + 325 = 1.00000 + 326 = 1.00000 + 327 = 1.00000 + 329 = 1.00000 + 330 = 1.00000 + 332 = 1.00000 + 334 = 1.00000 + 335 = 1.00000 + 342 = 1.00000 + 343 = 1.00000 + 344 = 1.00000 + 345 = 1.00000 + 347 = 1.00000 + 348 = 1.00000 + 350 = 1.00000 + 355 = 1.00000 + 356 = 1.00000 + 357 = 1.00000 + 359 = 1.00000 + 360 = 1.00000 + 361 = 1.00000 + 362 = 1.00000 + 367 = 1.00000 + 368 = 1.00000 + 369 = 1.00000 + 371 = 1.00000 + 372 = 1.00000 + 373 = 1.00000 + 374 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=5 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 3 = 1.00000 + 4 = 1.00000 + 5 = 1.00000 + 6 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 9 = 1.00000 + 10 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 15 = 1.00000 + 17 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 24 = 1.00000 + 25 = 1.00000 + 26 = 1.00000 + 27 = 1.00000 + 28 = 1.00000 + 30 = 1.00000 + 32 = 1.00000 + 36 = 1.00000 + 37 = 1.00000 + 38 = 1.00000 + 39 = 1.00000 + 40 = 1.00000 + 43 = 1.00000 + 44 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 54 = 1.00000 + 55 = 1.00000 + 56 = 1.00000 + 57 = 1.00000 + 59 = 1.00000 + 61 = 1.00000 + 62 = 1.00000 + 66 = 1.00000 + 68 = 1.00000 + 73 = 1.00000 + 74 = 1.00000 + 81 = 1.00000 + 82 = 1.00000 + 83 = 1.00000 + 84 = 1.00000 + 85 = 1.00000 + 87 = 1.00000 + 89 = 1.00000 + 93 = 1.00000 + 94 = 1.00000 + 95 = 1.00000 + 96 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 99 = 1.00000 + 100 = 1.00000 + 101 = 1.00000 + 103 = 1.00000 + 104 = 1.00000 + 105 = 1.00000 + 106 = 1.00000 + 111 = 1.00000 + 112 = 1.00000 + 113 = 1.00000 + 115 = 1.00000 + 116 = 1.00000 + 117 = 1.00000 + 119 = 1.00000 + 123 = 1.00000 + 124 = 1.00000 + 125 = 1.00000 + 127 = 1.00000 + 128 = 1.00000 + 133 = 1.00000 + 134 = 1.00000 + 135 = 1.00000 + 136 = 1.00000 + 137 = 1.00000 + 138 = 1.00000 + 139 = 1.00000 + 142 = 1.00000 + 143 = 1.00000 + 147 = 1.00000 + 148 = 1.00000 + 153 = 1.00000 + 154 = 1.00000 + 155 = 1.00000 + 156 = 1.00000 + 157 = 1.00000 + 158 = 1.00000 + 159 = 1.00000 + 160 = 1.00000 + 161 = 1.00000 + 162 = 1.00000 + 164 = 1.00000 + 165 = 1.00000 + 166 = 1.00000 + 167 = 1.00000 + 168 = 1.00000 + 170 = 1.00000 + 172 = 1.00000 + 173 = 1.00000 + 180 = 1.00000 + 181 = 1.00000 + 182 = 1.00000 + 183 = 1.00000 + 185 = 1.00000 + 186 = 1.00000 + 188 = 1.00000 + 189 = 1.00000 + 190 = 1.00000 + 195 = 1.00000 + 196 = 1.00000 + 197 = 1.00000 + 199 = 1.00000 + 200 = 1.00000 + 201 = 1.00000 + 202 = 1.00000 + 203 = 1.00000 + 204 = 1.00000 + 206 = 1.00000 + 207 = 1.00000 + 208 = 1.00000 + 209 = 1.00000 + 210 = 1.00000 + 211 = 1.00000 + 212 = 1.00000 + 217 = 1.00000 + 218 = 1.00000 + 219 = 1.00000 + 221 = 1.00000 + 222 = 1.00000 + 223 = 1.00000 + 224 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 227 = 1.00000 + 228 = 1.00000 + 230 = 1.00000 + 232 = 1.00000 + 233 = 1.00000 + 237 = 1.00000 + 239 = 1.00000 + 244 = 1.00000 + 245 = 1.00000 + 252 = 1.00000 + 253 = 1.00000 + 254 = 1.00000 + 255 = 1.00000 + 256 = 1.00000 + 257 = 1.00000 + 258 = 1.00000 + 259 = 1.00000 + 260 = 1.00000 + 261 = 1.00000 + 262 = 1.00000 + 264 = 1.00000 + 265 = 1.00000 + 266 = 1.00000 + 267 = 1.00000 + 268 = 1.00000 + 270 = 1.00000 + 271 = 1.00000 + 272 = 1.00000 + 273 = 1.00000 + 274 = 1.00000 + 276 = 1.00000 + 277 = 1.00000 + 279 = 1.00000 + 281 = 1.00000 + 285 = 1.00000 + 286 = 1.00000 + 287 = 1.00000 + 289 = 1.00000 + 290 = 1.00000 + 295 = 1.00000 + 296 = 1.00000 + 297 = 1.00000 + 298 = 1.00000 + 299 = 1.00000 + 300 = 1.00000 + 301 = 1.00000 + 303 = 1.00000 + 304 = 1.00000 + 305 = 1.00000 + 306 = 1.00000 + 307 = 1.00000 + 308 = 1.00000 + 309 = 1.00000 + 310 = 1.00000 + 312 = 1.00000 + 313 = 1.00000 + 314 = 1.00000 + 316 = 1.00000 + 317 = 1.00000 + 324 = 1.00000 + 325 = 1.00000 + 326 = 1.00000 + 327 = 1.00000 + 329 = 1.00000 + 330 = 1.00000 + 332 = 1.00000 + 333 = 1.00000 + 334 = 1.00000 + 335 = 1.00000 + 336 = 1.00000 + 337 = 1.00000 + 339 = 1.00000 + 340 = 1.00000 + 342 = 1.00000 + 343 = 1.00000 + 344 = 1.00000 + 345 = 1.00000 + 346 = 1.00000 + 347 = 1.00000 + 348 = 1.00000 + 349 = 1.00000 + 350 = 1.00000 + 355 = 1.00000 + 356 = 1.00000 + 357 = 1.00000 + 359 = 1.00000 + 360 = 1.00000 + 361 = 1.00000 + 362 = 1.00000 + 363 = 1.00000 + 364 = 1.00000 + 366 = 1.00000 + 367 = 1.00000 + 368 = 1.00000 + 369 = 1.00000 + 370 = 1.00000 + 371 = 1.00000 + 372 = 1.00000 + 373 = 1.00000 + 374 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=0 + 1 = 1.00000 + 2 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 25 = 1.00000 + 26 = 1.00000 + 37 = 1.00000 + 38 = 1.00000 + 49 = 1.00000 + 50 = 1.00000 + 55 = 1.00000 + 56 = 1.00000 + 61 = 1.00000 + 62 = 1.00000 + 136 = 1.00000 + 137 = 1.00000 + 142 = 1.00000 + 143 = 1.00000 + 148 = 1.00000 + 149 = 1.00000 + 157 = 1.00000 + 158 = 1.00000 + 166 = 1.00000 + 167 = 1.00000 + 172 = 1.00000 + 173 = 1.00000 + 226 = 1.00000 + 227 = 1.00000 + 232 = 1.00000 + 233 = 1.00000 + 238 = 1.00000 + 239 = 1.00000 + 250 = 1.00000 + 251 = 1.00000 + 256 = 1.00000 + 257 = 1.00000 + 262 = 1.00000 + 263 = 1.00000 + 316 = 1.00000 + 317 = 1.00000 + 322 = 1.00000 + 323 = 1.00000 + 331 = 1.00000 + 332 = 1.00000 + 337 = 1.00000 + 338 = 1.00000 + 676 = 1.00000 + 677 = 1.00000 + 682 = 1.00000 + 683 = 1.00000 + 688 = 1.00000 + 689 = 1.00000 + 697 = 1.00000 + 698 = 1.00000 + 706 = 1.00000 + 707 = 1.00000 + 712 = 1.00000 + 713 = 1.00000 + 766 = 1.00000 + 767 = 1.00000 + 772 = 1.00000 + 773 = 1.00000 + 778 = 1.00000 + 779 = 1.00000 + 787 = 1.00000 + 788 = 1.00000 + 796 = 1.00000 + 797 = 1.00000 + 802 = 1.00000 + 803 = 1.00000 + 856 = 1.00000 + 857 = 1.00000 + 862 = 1.00000 + 863 = 1.00000 + 871 = 1.00000 + 872 = 1.00000 + 877 = 1.00000 + 878 = 1.00000 + 916 = 1.00000 + 917 = 1.00000 + 922 = 1.00000 + 923 = 1.00000 + 931 = 1.00000 + 932 = 1.00000 + 937 = 1.00000 + 938 = 1.00000 + 1216 = 1.00000 + 1217 = 1.00000 + 1222 = 1.00000 + 1223 = 1.00000 + 1228 = 1.00000 + 1229 = 1.00000 + 1240 = 1.00000 + 1241 = 1.00000 + 1246 = 1.00000 + 1247 = 1.00000 + 1252 = 1.00000 + 1253 = 1.00000 + 1306 = 1.00000 + 1307 = 1.00000 + 1312 = 1.00000 + 1313 = 1.00000 + 1321 = 1.00000 + 1322 = 1.00000 + 1327 = 1.00000 + 1328 = 1.00000 + 1366 = 1.00000 + 1367 = 1.00000 + 1372 = 1.00000 + 1373 = 1.00000 + 1378 = 1.00000 + 1379 = 1.00000 + 1390 = 1.00000 + 1391 = 1.00000 + 1396 = 1.00000 + 1397 = 1.00000 + 1402 = 1.00000 + 1403 = 1.00000 + 1456 = 1.00000 + 1457 = 1.00000 + 1462 = 1.00000 + 1463 = 1.00000 + 1471 = 1.00000 + 1472 = 1.00000 + 1477 = 1.00000 + 1478 = 1.00000 + 1756 = 1.00000 + 1757 = 1.00000 + 1762 = 1.00000 + 1763 = 1.00000 + 1771 = 1.00000 + 1772 = 1.00000 + 1777 = 1.00000 + 1778 = 1.00000 + 1816 = 1.00000 + 1817 = 1.00000 + 1822 = 1.00000 + 1823 = 1.00000 + 1831 = 1.00000 + 1832 = 1.00000 + 1837 = 1.00000 + 1838 = 1.00000 + 1876 = 1.00000 + 1877 = 1.00000 + 1882 = 1.00000 + 1883 = 1.00000 + 1891 = 1.00000 + 1892 = 1.00000 + 1897 = 1.00000 + 1898 = 1.00000 + 1936 = 1.00000 + 1937 = 1.00000 + 1942 = 1.00000 + 1943 = 1.00000 + 1951 = 1.00000 + 1952 = 1.00000 + 1957 = 1.00000 + 1958 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=1 + 1 = 1.00000 + 2 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 25 = 1.00000 + 26 = 1.00000 + 37 = 1.00000 + 38 = 1.00000 + 49 = 1.00000 + 50 = 1.00000 + 55 = 1.00000 + 56 = 1.00000 + 61 = 1.00000 + 62 = 1.00000 + 136 = 1.00000 + 137 = 1.00000 + 142 = 1.00000 + 143 = 1.00000 + 148 = 1.00000 + 149 = 1.00000 + 157 = 1.00000 + 158 = 1.00000 + 166 = 1.00000 + 167 = 1.00000 + 172 = 1.00000 + 173 = 1.00000 + 226 = 1.00000 + 227 = 1.00000 + 232 = 1.00000 + 233 = 1.00000 + 238 = 1.00000 + 239 = 1.00000 + 250 = 1.00000 + 251 = 1.00000 + 256 = 1.00000 + 257 = 1.00000 + 262 = 1.00000 + 263 = 1.00000 + 316 = 1.00000 + 317 = 1.00000 + 322 = 1.00000 + 323 = 1.00000 + 331 = 1.00000 + 332 = 1.00000 + 337 = 1.00000 + 338 = 1.00000 + 430 = 1.00000 + 431 = 1.00000 + 433 = 1.00000 + 434 = 1.00000 + 436 = 1.00000 + 437 = 1.00000 + 439 = 1.00000 + 440 = 1.00000 + 442 = 1.00000 + 443 = 1.00000 + 451 = 1.00000 + 452 = 1.00000 + 460 = 1.00000 + 461 = 1.00000 + 463 = 1.00000 + 464 = 1.00000 + 466 = 1.00000 + 467 = 1.00000 + 520 = 1.00000 + 521 = 1.00000 + 523 = 1.00000 + 524 = 1.00000 + 526 = 1.00000 + 527 = 1.00000 + 532 = 1.00000 + 533 = 1.00000 + 538 = 1.00000 + 539 = 1.00000 + 541 = 1.00000 + 542 = 1.00000 + 592 = 1.00000 + 593 = 1.00000 + 595 = 1.00000 + 596 = 1.00000 + 598 = 1.00000 + 599 = 1.00000 + 607 = 1.00000 + 608 = 1.00000 + 610 = 1.00000 + 611 = 1.00000 + 613 = 1.00000 + 614 = 1.00000 + 652 = 1.00000 + 653 = 1.00000 + 655 = 1.00000 + 656 = 1.00000 + 661 = 1.00000 + 662 = 1.00000 + 664 = 1.00000 + 665 = 1.00000 + 676 = 1.00000 + 677 = 1.00000 + 682 = 1.00000 + 683 = 1.00000 + 688 = 1.00000 + 689 = 1.00000 + 697 = 1.00000 + 698 = 1.00000 + 706 = 1.00000 + 707 = 1.00000 + 712 = 1.00000 + 713 = 1.00000 + 766 = 1.00000 + 767 = 1.00000 + 772 = 1.00000 + 773 = 1.00000 + 778 = 1.00000 + 779 = 1.00000 + 787 = 1.00000 + 788 = 1.00000 + 796 = 1.00000 + 797 = 1.00000 + 802 = 1.00000 + 803 = 1.00000 + 856 = 1.00000 + 857 = 1.00000 + 862 = 1.00000 + 863 = 1.00000 + 871 = 1.00000 + 872 = 1.00000 + 877 = 1.00000 + 878 = 1.00000 + 916 = 1.00000 + 917 = 1.00000 + 922 = 1.00000 + 923 = 1.00000 + 931 = 1.00000 + 932 = 1.00000 + 937 = 1.00000 + 938 = 1.00000 + 1012 = 1.00000 + 1013 = 1.00000 + 1015 = 1.00000 + 1016 = 1.00000 + 1018 = 1.00000 + 1019 = 1.00000 + 1024 = 1.00000 + 1025 = 1.00000 + 1030 = 1.00000 + 1031 = 1.00000 + 1033 = 1.00000 + 1034 = 1.00000 + 1084 = 1.00000 + 1085 = 1.00000 + 1087 = 1.00000 + 1088 = 1.00000 + 1090 = 1.00000 + 1091 = 1.00000 + 1096 = 1.00000 + 1097 = 1.00000 + 1102 = 1.00000 + 1103 = 1.00000 + 1105 = 1.00000 + 1106 = 1.00000 + 1144 = 1.00000 + 1145 = 1.00000 + 1147 = 1.00000 + 1148 = 1.00000 + 1153 = 1.00000 + 1154 = 1.00000 + 1156 = 1.00000 + 1157 = 1.00000 + 1192 = 1.00000 + 1193 = 1.00000 + 1195 = 1.00000 + 1196 = 1.00000 + 1201 = 1.00000 + 1202 = 1.00000 + 1204 = 1.00000 + 1205 = 1.00000 + 1216 = 1.00000 + 1217 = 1.00000 + 1222 = 1.00000 + 1223 = 1.00000 + 1228 = 1.00000 + 1229 = 1.00000 + 1240 = 1.00000 + 1241 = 1.00000 + 1246 = 1.00000 + 1247 = 1.00000 + 1252 = 1.00000 + 1253 = 1.00000 + 1306 = 1.00000 + 1307 = 1.00000 + 1312 = 1.00000 + 1313 = 1.00000 + 1321 = 1.00000 + 1322 = 1.00000 + 1327 = 1.00000 + 1328 = 1.00000 + 1366 = 1.00000 + 1367 = 1.00000 + 1372 = 1.00000 + 1373 = 1.00000 + 1378 = 1.00000 + 1379 = 1.00000 + 1390 = 1.00000 + 1391 = 1.00000 + 1396 = 1.00000 + 1397 = 1.00000 + 1402 = 1.00000 + 1403 = 1.00000 + 1456 = 1.00000 + 1457 = 1.00000 + 1462 = 1.00000 + 1463 = 1.00000 + 1471 = 1.00000 + 1472 = 1.00000 + 1477 = 1.00000 + 1478 = 1.00000 + 1552 = 1.00000 + 1553 = 1.00000 + 1555 = 1.00000 + 1556 = 1.00000 + 1558 = 1.00000 + 1559 = 1.00000 + 1567 = 1.00000 + 1568 = 1.00000 + 1570 = 1.00000 + 1571 = 1.00000 + 1573 = 1.00000 + 1574 = 1.00000 + 1612 = 1.00000 + 1613 = 1.00000 + 1615 = 1.00000 + 1616 = 1.00000 + 1621 = 1.00000 + 1622 = 1.00000 + 1624 = 1.00000 + 1625 = 1.00000 + 1672 = 1.00000 + 1673 = 1.00000 + 1675 = 1.00000 + 1676 = 1.00000 + 1678 = 1.00000 + 1679 = 1.00000 + 1687 = 1.00000 + 1688 = 1.00000 + 1690 = 1.00000 + 1691 = 1.00000 + 1693 = 1.00000 + 1694 = 1.00000 + 1732 = 1.00000 + 1733 = 1.00000 + 1735 = 1.00000 + 1736 = 1.00000 + 1741 = 1.00000 + 1742 = 1.00000 + 1744 = 1.00000 + 1745 = 1.00000 + 1756 = 1.00000 + 1757 = 1.00000 + 1762 = 1.00000 + 1763 = 1.00000 + 1771 = 1.00000 + 1772 = 1.00000 + 1777 = 1.00000 + 1778 = 1.00000 + 1816 = 1.00000 + 1817 = 1.00000 + 1822 = 1.00000 + 1823 = 1.00000 + 1831 = 1.00000 + 1832 = 1.00000 + 1837 = 1.00000 + 1838 = 1.00000 + 1876 = 1.00000 + 1877 = 1.00000 + 1882 = 1.00000 + 1883 = 1.00000 + 1891 = 1.00000 + 1892 = 1.00000 + 1897 = 1.00000 + 1898 = 1.00000 + 1936 = 1.00000 + 1937 = 1.00000 + 1942 = 1.00000 + 1943 = 1.00000 + 1951 = 1.00000 + 1952 = 1.00000 + 1957 = 1.00000 + 1958 = 1.00000 + 2020 = 1.00000 + 2021 = 1.00000 + 2023 = 1.00000 + 2024 = 1.00000 + 2029 = 1.00000 + 2030 = 1.00000 + 2032 = 1.00000 + 2033 = 1.00000 + 2068 = 1.00000 + 2069 = 1.00000 + 2071 = 1.00000 + 2072 = 1.00000 + 2077 = 1.00000 + 2078 = 1.00000 + 2080 = 1.00000 + 2081 = 1.00000 + 2116 = 1.00000 + 2117 = 1.00000 + 2119 = 1.00000 + 2120 = 1.00000 + 2125 = 1.00000 + 2126 = 1.00000 + 2128 = 1.00000 + 2129 = 1.00000 + 2164 = 1.00000 + 2165 = 1.00000 + 2167 = 1.00000 + 2168 = 1.00000 + 2173 = 1.00000 + 2174 = 1.00000 + 2176 = 1.00000 + 2177 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=2 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 3 = 1.00000 + 5 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 15 = 1.00000 + 17 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 25 = 1.00000 + 26 = 1.00000 + 30 = 1.00000 + 32 = 1.00000 + 37 = 1.00000 + 38 = 1.00000 + 42 = 1.00000 + 44 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 50 = 1.00000 + 51 = 1.00000 + 53 = 1.00000 + 55 = 1.00000 + 56 = 1.00000 + 61 = 1.00000 + 62 = 1.00000 + 66 = 1.00000 + 68 = 1.00000 + 81 = 1.00000 + 83 = 1.00000 + 87 = 1.00000 + 89 = 1.00000 + 96 = 1.00000 + 98 = 1.00000 + 105 = 1.00000 + 107 = 1.00000 + 111 = 1.00000 + 113 = 1.00000 + 120 = 1.00000 + 122 = 1.00000 + 136 = 1.00000 + 137 = 1.00000 + 142 = 1.00000 + 143 = 1.00000 + 148 = 1.00000 + 149 = 1.00000 + 157 = 1.00000 + 158 = 1.00000 + 166 = 1.00000 + 167 = 1.00000 + 172 = 1.00000 + 173 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 227 = 1.00000 + 228 = 1.00000 + 230 = 1.00000 + 232 = 1.00000 + 233 = 1.00000 + 238 = 1.00000 + 239 = 1.00000 + 243 = 1.00000 + 245 = 1.00000 + 249 = 1.00000 + 250 = 1.00000 + 251 = 1.00000 + 252 = 1.00000 + 254 = 1.00000 + 256 = 1.00000 + 257 = 1.00000 + 262 = 1.00000 + 263 = 1.00000 + 267 = 1.00000 + 269 = 1.00000 + 279 = 1.00000 + 281 = 1.00000 + 288 = 1.00000 + 290 = 1.00000 + 294 = 1.00000 + 296 = 1.00000 + 303 = 1.00000 + 305 = 1.00000 + 316 = 1.00000 + 317 = 1.00000 + 322 = 1.00000 + 323 = 1.00000 + 331 = 1.00000 + 332 = 1.00000 + 337 = 1.00000 + 338 = 1.00000 + 375 = 1.00000 + 377 = 1.00000 + 381 = 1.00000 + 383 = 1.00000 + 390 = 1.00000 + 392 = 1.00000 + 399 = 1.00000 + 401 = 1.00000 + 405 = 1.00000 + 407 = 1.00000 + 414 = 1.00000 + 416 = 1.00000 + 429 = 1.00000 + 430 = 1.00000 + 431 = 1.00000 + 433 = 1.00000 + 434 = 1.00000 + 435 = 1.00000 + 436 = 1.00000 + 437 = 1.00000 + 439 = 1.00000 + 440 = 1.00000 + 442 = 1.00000 + 443 = 1.00000 + 444 = 1.00000 + 446 = 1.00000 + 451 = 1.00000 + 452 = 1.00000 + 453 = 1.00000 + 455 = 1.00000 + 459 = 1.00000 + 460 = 1.00000 + 461 = 1.00000 + 463 = 1.00000 + 464 = 1.00000 + 466 = 1.00000 + 467 = 1.00000 + 468 = 1.00000 + 470 = 1.00000 + 520 = 1.00000 + 521 = 1.00000 + 523 = 1.00000 + 524 = 1.00000 + 526 = 1.00000 + 527 = 1.00000 + 532 = 1.00000 + 533 = 1.00000 + 538 = 1.00000 + 539 = 1.00000 + 541 = 1.00000 + 542 = 1.00000 + 555 = 1.00000 + 557 = 1.00000 + 564 = 1.00000 + 566 = 1.00000 + 570 = 1.00000 + 572 = 1.00000 + 579 = 1.00000 + 581 = 1.00000 + 591 = 1.00000 + 592 = 1.00000 + 593 = 1.00000 + 595 = 1.00000 + 596 = 1.00000 + 598 = 1.00000 + 599 = 1.00000 + 600 = 1.00000 + 602 = 1.00000 + 606 = 1.00000 + 607 = 1.00000 + 608 = 1.00000 + 610 = 1.00000 + 611 = 1.00000 + 613 = 1.00000 + 614 = 1.00000 + 615 = 1.00000 + 617 = 1.00000 + 652 = 1.00000 + 653 = 1.00000 + 655 = 1.00000 + 656 = 1.00000 + 661 = 1.00000 + 662 = 1.00000 + 664 = 1.00000 + 665 = 1.00000 + 676 = 1.00000 + 677 = 1.00000 + 682 = 1.00000 + 683 = 1.00000 + 688 = 1.00000 + 689 = 1.00000 + 697 = 1.00000 + 698 = 1.00000 + 706 = 1.00000 + 707 = 1.00000 + 712 = 1.00000 + 713 = 1.00000 + 766 = 1.00000 + 767 = 1.00000 + 772 = 1.00000 + 773 = 1.00000 + 778 = 1.00000 + 779 = 1.00000 + 787 = 1.00000 + 788 = 1.00000 + 796 = 1.00000 + 797 = 1.00000 + 802 = 1.00000 + 803 = 1.00000 + 856 = 1.00000 + 857 = 1.00000 + 862 = 1.00000 + 863 = 1.00000 + 871 = 1.00000 + 872 = 1.00000 + 877 = 1.00000 + 878 = 1.00000 + 916 = 1.00000 + 917 = 1.00000 + 922 = 1.00000 + 923 = 1.00000 + 931 = 1.00000 + 932 = 1.00000 + 937 = 1.00000 + 938 = 1.00000 + 1012 = 1.00000 + 1013 = 1.00000 + 1015 = 1.00000 + 1016 = 1.00000 + 1018 = 1.00000 + 1019 = 1.00000 + 1024 = 1.00000 + 1025 = 1.00000 + 1030 = 1.00000 + 1031 = 1.00000 + 1033 = 1.00000 + 1034 = 1.00000 + 1084 = 1.00000 + 1085 = 1.00000 + 1087 = 1.00000 + 1088 = 1.00000 + 1090 = 1.00000 + 1091 = 1.00000 + 1096 = 1.00000 + 1097 = 1.00000 + 1102 = 1.00000 + 1103 = 1.00000 + 1105 = 1.00000 + 1106 = 1.00000 + 1144 = 1.00000 + 1145 = 1.00000 + 1147 = 1.00000 + 1148 = 1.00000 + 1153 = 1.00000 + 1154 = 1.00000 + 1156 = 1.00000 + 1157 = 1.00000 + 1192 = 1.00000 + 1193 = 1.00000 + 1195 = 1.00000 + 1196 = 1.00000 + 1201 = 1.00000 + 1202 = 1.00000 + 1204 = 1.00000 + 1205 = 1.00000 + 1215 = 1.00000 + 1216 = 1.00000 + 1217 = 1.00000 + 1218 = 1.00000 + 1220 = 1.00000 + 1222 = 1.00000 + 1223 = 1.00000 + 1228 = 1.00000 + 1229 = 1.00000 + 1233 = 1.00000 + 1235 = 1.00000 + 1239 = 1.00000 + 1240 = 1.00000 + 1241 = 1.00000 + 1242 = 1.00000 + 1244 = 1.00000 + 1246 = 1.00000 + 1247 = 1.00000 + 1252 = 1.00000 + 1253 = 1.00000 + 1257 = 1.00000 + 1259 = 1.00000 + 1269 = 1.00000 + 1271 = 1.00000 + 1278 = 1.00000 + 1280 = 1.00000 + 1284 = 1.00000 + 1286 = 1.00000 + 1293 = 1.00000 + 1295 = 1.00000 + 1306 = 1.00000 + 1307 = 1.00000 + 1312 = 1.00000 + 1313 = 1.00000 + 1321 = 1.00000 + 1322 = 1.00000 + 1327 = 1.00000 + 1328 = 1.00000 + 1365 = 1.00000 + 1366 = 1.00000 + 1367 = 1.00000 + 1368 = 1.00000 + 1370 = 1.00000 + 1372 = 1.00000 + 1373 = 1.00000 + 1378 = 1.00000 + 1379 = 1.00000 + 1383 = 1.00000 + 1385 = 1.00000 + 1389 = 1.00000 + 1390 = 1.00000 + 1391 = 1.00000 + 1392 = 1.00000 + 1394 = 1.00000 + 1396 = 1.00000 + 1397 = 1.00000 + 1402 = 1.00000 + 1403 = 1.00000 + 1407 = 1.00000 + 1409 = 1.00000 + 1419 = 1.00000 + 1421 = 1.00000 + 1428 = 1.00000 + 1430 = 1.00000 + 1434 = 1.00000 + 1436 = 1.00000 + 1443 = 1.00000 + 1445 = 1.00000 + 1456 = 1.00000 + 1457 = 1.00000 + 1462 = 1.00000 + 1463 = 1.00000 + 1471 = 1.00000 + 1472 = 1.00000 + 1477 = 1.00000 + 1478 = 1.00000 + 1515 = 1.00000 + 1517 = 1.00000 + 1524 = 1.00000 + 1526 = 1.00000 + 1530 = 1.00000 + 1532 = 1.00000 + 1539 = 1.00000 + 1541 = 1.00000 + 1551 = 1.00000 + 1552 = 1.00000 + 1553 = 1.00000 + 1555 = 1.00000 + 1556 = 1.00000 + 1558 = 1.00000 + 1559 = 1.00000 + 1560 = 1.00000 + 1562 = 1.00000 + 1566 = 1.00000 + 1567 = 1.00000 + 1568 = 1.00000 + 1570 = 1.00000 + 1571 = 1.00000 + 1573 = 1.00000 + 1574 = 1.00000 + 1575 = 1.00000 + 1577 = 1.00000 + 1612 = 1.00000 + 1613 = 1.00000 + 1615 = 1.00000 + 1616 = 1.00000 + 1621 = 1.00000 + 1622 = 1.00000 + 1624 = 1.00000 + 1625 = 1.00000 + 1635 = 1.00000 + 1637 = 1.00000 + 1644 = 1.00000 + 1646 = 1.00000 + 1650 = 1.00000 + 1652 = 1.00000 + 1659 = 1.00000 + 1661 = 1.00000 + 1671 = 1.00000 + 1672 = 1.00000 + 1673 = 1.00000 + 1675 = 1.00000 + 1676 = 1.00000 + 1678 = 1.00000 + 1679 = 1.00000 + 1680 = 1.00000 + 1682 = 1.00000 + 1686 = 1.00000 + 1687 = 1.00000 + 1688 = 1.00000 + 1690 = 1.00000 + 1691 = 1.00000 + 1693 = 1.00000 + 1694 = 1.00000 + 1695 = 1.00000 + 1697 = 1.00000 + 1732 = 1.00000 + 1733 = 1.00000 + 1735 = 1.00000 + 1736 = 1.00000 + 1741 = 1.00000 + 1742 = 1.00000 + 1744 = 1.00000 + 1745 = 1.00000 + 1756 = 1.00000 + 1757 = 1.00000 + 1762 = 1.00000 + 1763 = 1.00000 + 1771 = 1.00000 + 1772 = 1.00000 + 1777 = 1.00000 + 1778 = 1.00000 + 1816 = 1.00000 + 1817 = 1.00000 + 1822 = 1.00000 + 1823 = 1.00000 + 1831 = 1.00000 + 1832 = 1.00000 + 1837 = 1.00000 + 1838 = 1.00000 + 1876 = 1.00000 + 1877 = 1.00000 + 1882 = 1.00000 + 1883 = 1.00000 + 1891 = 1.00000 + 1892 = 1.00000 + 1897 = 1.00000 + 1898 = 1.00000 + 1936 = 1.00000 + 1937 = 1.00000 + 1942 = 1.00000 + 1943 = 1.00000 + 1951 = 1.00000 + 1952 = 1.00000 + 1957 = 1.00000 + 1958 = 1.00000 + 2020 = 1.00000 + 2021 = 1.00000 + 2023 = 1.00000 + 2024 = 1.00000 + 2029 = 1.00000 + 2030 = 1.00000 + 2032 = 1.00000 + 2033 = 1.00000 + 2068 = 1.00000 + 2069 = 1.00000 + 2071 = 1.00000 + 2072 = 1.00000 + 2077 = 1.00000 + 2078 = 1.00000 + 2080 = 1.00000 + 2081 = 1.00000 + 2116 = 1.00000 + 2117 = 1.00000 + 2119 = 1.00000 + 2120 = 1.00000 + 2125 = 1.00000 + 2126 = 1.00000 + 2128 = 1.00000 + 2129 = 1.00000 + 2164 = 1.00000 + 2165 = 1.00000 + 2167 = 1.00000 + 2168 = 1.00000 + 2173 = 1.00000 + 2174 = 1.00000 + 2176 = 1.00000 + 2177 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=3 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 3 = 1.00000 + 5 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 15 = 1.00000 + 17 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 25 = 1.00000 + 26 = 1.00000 + 30 = 1.00000 + 32 = 1.00000 + 37 = 1.00000 + 38 = 1.00000 + 42 = 1.00000 + 44 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 50 = 1.00000 + 51 = 1.00000 + 53 = 1.00000 + 55 = 1.00000 + 56 = 1.00000 + 61 = 1.00000 + 62 = 1.00000 + 66 = 1.00000 + 68 = 1.00000 + 81 = 1.00000 + 83 = 1.00000 + 87 = 1.00000 + 89 = 1.00000 + 96 = 1.00000 + 98 = 1.00000 + 105 = 1.00000 + 107 = 1.00000 + 111 = 1.00000 + 113 = 1.00000 + 120 = 1.00000 + 122 = 1.00000 + 136 = 1.00000 + 137 = 1.00000 + 142 = 1.00000 + 143 = 1.00000 + 148 = 1.00000 + 149 = 1.00000 + 157 = 1.00000 + 158 = 1.00000 + 166 = 1.00000 + 167 = 1.00000 + 172 = 1.00000 + 173 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 227 = 1.00000 + 228 = 1.00000 + 230 = 1.00000 + 232 = 1.00000 + 233 = 1.00000 + 238 = 1.00000 + 239 = 1.00000 + 243 = 1.00000 + 245 = 1.00000 + 249 = 1.00000 + 250 = 1.00000 + 251 = 1.00000 + 252 = 1.00000 + 254 = 1.00000 + 256 = 1.00000 + 257 = 1.00000 + 262 = 1.00000 + 263 = 1.00000 + 267 = 1.00000 + 269 = 1.00000 + 279 = 1.00000 + 281 = 1.00000 + 288 = 1.00000 + 290 = 1.00000 + 294 = 1.00000 + 296 = 1.00000 + 303 = 1.00000 + 305 = 1.00000 + 316 = 1.00000 + 317 = 1.00000 + 322 = 1.00000 + 323 = 1.00000 + 331 = 1.00000 + 332 = 1.00000 + 337 = 1.00000 + 338 = 1.00000 + 375 = 1.00000 + 377 = 1.00000 + 381 = 1.00000 + 383 = 1.00000 + 390 = 1.00000 + 392 = 1.00000 + 399 = 1.00000 + 401 = 1.00000 + 405 = 1.00000 + 407 = 1.00000 + 414 = 1.00000 + 416 = 1.00000 + 429 = 1.00000 + 430 = 1.00000 + 431 = 1.00000 + 433 = 1.00000 + 434 = 1.00000 + 435 = 1.00000 + 436 = 1.00000 + 437 = 1.00000 + 439 = 1.00000 + 440 = 1.00000 + 442 = 1.00000 + 443 = 1.00000 + 444 = 1.00000 + 446 = 1.00000 + 451 = 1.00000 + 452 = 1.00000 + 453 = 1.00000 + 455 = 1.00000 + 459 = 1.00000 + 460 = 1.00000 + 461 = 1.00000 + 463 = 1.00000 + 464 = 1.00000 + 466 = 1.00000 + 467 = 1.00000 + 468 = 1.00000 + 470 = 1.00000 + 520 = 1.00000 + 521 = 1.00000 + 523 = 1.00000 + 524 = 1.00000 + 526 = 1.00000 + 527 = 1.00000 + 532 = 1.00000 + 533 = 1.00000 + 538 = 1.00000 + 539 = 1.00000 + 541 = 1.00000 + 542 = 1.00000 + 555 = 1.00000 + 557 = 1.00000 + 564 = 1.00000 + 566 = 1.00000 + 570 = 1.00000 + 572 = 1.00000 + 579 = 1.00000 + 581 = 1.00000 + 591 = 1.00000 + 592 = 1.00000 + 593 = 1.00000 + 595 = 1.00000 + 596 = 1.00000 + 598 = 1.00000 + 599 = 1.00000 + 600 = 1.00000 + 602 = 1.00000 + 606 = 1.00000 + 607 = 1.00000 + 608 = 1.00000 + 610 = 1.00000 + 611 = 1.00000 + 613 = 1.00000 + 614 = 1.00000 + 615 = 1.00000 + 617 = 1.00000 + 652 = 1.00000 + 653 = 1.00000 + 655 = 1.00000 + 656 = 1.00000 + 661 = 1.00000 + 662 = 1.00000 + 664 = 1.00000 + 665 = 1.00000 + 676 = 1.00000 + 677 = 1.00000 + 682 = 1.00000 + 683 = 1.00000 + 688 = 1.00000 + 689 = 1.00000 + 697 = 1.00000 + 698 = 1.00000 + 706 = 1.00000 + 707 = 1.00000 + 712 = 1.00000 + 713 = 1.00000 + 765 = 1.00000 + 766 = 1.00000 + 767 = 1.00000 + 768 = 1.00000 + 770 = 1.00000 + 771 = 1.00000 + 772 = 1.00000 + 773 = 1.00000 + 774 = 1.00000 + 776 = 1.00000 + 778 = 1.00000 + 779 = 1.00000 + 783 = 1.00000 + 785 = 1.00000 + 787 = 1.00000 + 788 = 1.00000 + 792 = 1.00000 + 794 = 1.00000 + 795 = 1.00000 + 796 = 1.00000 + 797 = 1.00000 + 798 = 1.00000 + 800 = 1.00000 + 802 = 1.00000 + 803 = 1.00000 + 807 = 1.00000 + 809 = 1.00000 + 819 = 1.00000 + 821 = 1.00000 + 822 = 1.00000 + 824 = 1.00000 + 828 = 1.00000 + 830 = 1.00000 + 834 = 1.00000 + 836 = 1.00000 + 837 = 1.00000 + 839 = 1.00000 + 843 = 1.00000 + 845 = 1.00000 + 856 = 1.00000 + 857 = 1.00000 + 862 = 1.00000 + 863 = 1.00000 + 871 = 1.00000 + 872 = 1.00000 + 877 = 1.00000 + 878 = 1.00000 + 915 = 1.00000 + 916 = 1.00000 + 917 = 1.00000 + 918 = 1.00000 + 920 = 1.00000 + 922 = 1.00000 + 923 = 1.00000 + 927 = 1.00000 + 929 = 1.00000 + 930 = 1.00000 + 931 = 1.00000 + 932 = 1.00000 + 933 = 1.00000 + 935 = 1.00000 + 937 = 1.00000 + 938 = 1.00000 + 942 = 1.00000 + 944 = 1.00000 + 951 = 1.00000 + 953 = 1.00000 + 957 = 1.00000 + 959 = 1.00000 + 960 = 1.00000 + 962 = 1.00000 + 966 = 1.00000 + 968 = 1.00000 + 1012 = 1.00000 + 1013 = 1.00000 + 1015 = 1.00000 + 1016 = 1.00000 + 1018 = 1.00000 + 1019 = 1.00000 + 1024 = 1.00000 + 1025 = 1.00000 + 1030 = 1.00000 + 1031 = 1.00000 + 1033 = 1.00000 + 1034 = 1.00000 + 1047 = 1.00000 + 1049 = 1.00000 + 1050 = 1.00000 + 1052 = 1.00000 + 1056 = 1.00000 + 1058 = 1.00000 + 1062 = 1.00000 + 1064 = 1.00000 + 1065 = 1.00000 + 1067 = 1.00000 + 1071 = 1.00000 + 1073 = 1.00000 + 1083 = 1.00000 + 1084 = 1.00000 + 1085 = 1.00000 + 1086 = 1.00000 + 1087 = 1.00000 + 1088 = 1.00000 + 1090 = 1.00000 + 1091 = 1.00000 + 1092 = 1.00000 + 1094 = 1.00000 + 1096 = 1.00000 + 1097 = 1.00000 + 1098 = 1.00000 + 1100 = 1.00000 + 1101 = 1.00000 + 1102 = 1.00000 + 1103 = 1.00000 + 1105 = 1.00000 + 1106 = 1.00000 + 1107 = 1.00000 + 1109 = 1.00000 + 1144 = 1.00000 + 1145 = 1.00000 + 1147 = 1.00000 + 1148 = 1.00000 + 1153 = 1.00000 + 1154 = 1.00000 + 1156 = 1.00000 + 1157 = 1.00000 + 1167 = 1.00000 + 1169 = 1.00000 + 1173 = 1.00000 + 1175 = 1.00000 + 1176 = 1.00000 + 1178 = 1.00000 + 1182 = 1.00000 + 1184 = 1.00000 + 1191 = 1.00000 + 1192 = 1.00000 + 1193 = 1.00000 + 1195 = 1.00000 + 1196 = 1.00000 + 1197 = 1.00000 + 1199 = 1.00000 + 1200 = 1.00000 + 1201 = 1.00000 + 1202 = 1.00000 + 1204 = 1.00000 + 1205 = 1.00000 + 1206 = 1.00000 + 1208 = 1.00000 + 1215 = 1.00000 + 1216 = 1.00000 + 1217 = 1.00000 + 1218 = 1.00000 + 1220 = 1.00000 + 1222 = 1.00000 + 1223 = 1.00000 + 1228 = 1.00000 + 1229 = 1.00000 + 1233 = 1.00000 + 1235 = 1.00000 + 1239 = 1.00000 + 1240 = 1.00000 + 1241 = 1.00000 + 1242 = 1.00000 + 1244 = 1.00000 + 1246 = 1.00000 + 1247 = 1.00000 + 1252 = 1.00000 + 1253 = 1.00000 + 1257 = 1.00000 + 1259 = 1.00000 + 1269 = 1.00000 + 1271 = 1.00000 + 1278 = 1.00000 + 1280 = 1.00000 + 1284 = 1.00000 + 1286 = 1.00000 + 1293 = 1.00000 + 1295 = 1.00000 + 1306 = 1.00000 + 1307 = 1.00000 + 1312 = 1.00000 + 1313 = 1.00000 + 1321 = 1.00000 + 1322 = 1.00000 + 1327 = 1.00000 + 1328 = 1.00000 + 1365 = 1.00000 + 1366 = 1.00000 + 1367 = 1.00000 + 1368 = 1.00000 + 1370 = 1.00000 + 1372 = 1.00000 + 1373 = 1.00000 + 1378 = 1.00000 + 1379 = 1.00000 + 1383 = 1.00000 + 1385 = 1.00000 + 1389 = 1.00000 + 1390 = 1.00000 + 1391 = 1.00000 + 1392 = 1.00000 + 1394 = 1.00000 + 1396 = 1.00000 + 1397 = 1.00000 + 1402 = 1.00000 + 1403 = 1.00000 + 1407 = 1.00000 + 1409 = 1.00000 + 1419 = 1.00000 + 1421 = 1.00000 + 1428 = 1.00000 + 1430 = 1.00000 + 1434 = 1.00000 + 1436 = 1.00000 + 1443 = 1.00000 + 1445 = 1.00000 + 1456 = 1.00000 + 1457 = 1.00000 + 1462 = 1.00000 + 1463 = 1.00000 + 1471 = 1.00000 + 1472 = 1.00000 + 1477 = 1.00000 + 1478 = 1.00000 + 1515 = 1.00000 + 1517 = 1.00000 + 1524 = 1.00000 + 1526 = 1.00000 + 1530 = 1.00000 + 1532 = 1.00000 + 1539 = 1.00000 + 1541 = 1.00000 + 1551 = 1.00000 + 1552 = 1.00000 + 1553 = 1.00000 + 1555 = 1.00000 + 1556 = 1.00000 + 1558 = 1.00000 + 1559 = 1.00000 + 1560 = 1.00000 + 1562 = 1.00000 + 1566 = 1.00000 + 1567 = 1.00000 + 1568 = 1.00000 + 1570 = 1.00000 + 1571 = 1.00000 + 1573 = 1.00000 + 1574 = 1.00000 + 1575 = 1.00000 + 1577 = 1.00000 + 1612 = 1.00000 + 1613 = 1.00000 + 1615 = 1.00000 + 1616 = 1.00000 + 1621 = 1.00000 + 1622 = 1.00000 + 1624 = 1.00000 + 1625 = 1.00000 + 1635 = 1.00000 + 1637 = 1.00000 + 1644 = 1.00000 + 1646 = 1.00000 + 1650 = 1.00000 + 1652 = 1.00000 + 1659 = 1.00000 + 1661 = 1.00000 + 1671 = 1.00000 + 1672 = 1.00000 + 1673 = 1.00000 + 1675 = 1.00000 + 1676 = 1.00000 + 1678 = 1.00000 + 1679 = 1.00000 + 1680 = 1.00000 + 1682 = 1.00000 + 1686 = 1.00000 + 1687 = 1.00000 + 1688 = 1.00000 + 1690 = 1.00000 + 1691 = 1.00000 + 1693 = 1.00000 + 1694 = 1.00000 + 1695 = 1.00000 + 1697 = 1.00000 + 1732 = 1.00000 + 1733 = 1.00000 + 1735 = 1.00000 + 1736 = 1.00000 + 1741 = 1.00000 + 1742 = 1.00000 + 1744 = 1.00000 + 1745 = 1.00000 + 1756 = 1.00000 + 1757 = 1.00000 + 1762 = 1.00000 + 1763 = 1.00000 + 1771 = 1.00000 + 1772 = 1.00000 + 1777 = 1.00000 + 1778 = 1.00000 + 1815 = 1.00000 + 1816 = 1.00000 + 1817 = 1.00000 + 1818 = 1.00000 + 1820 = 1.00000 + 1822 = 1.00000 + 1823 = 1.00000 + 1827 = 1.00000 + 1829 = 1.00000 + 1830 = 1.00000 + 1831 = 1.00000 + 1832 = 1.00000 + 1833 = 1.00000 + 1835 = 1.00000 + 1837 = 1.00000 + 1838 = 1.00000 + 1842 = 1.00000 + 1844 = 1.00000 + 1851 = 1.00000 + 1853 = 1.00000 + 1857 = 1.00000 + 1859 = 1.00000 + 1860 = 1.00000 + 1862 = 1.00000 + 1866 = 1.00000 + 1868 = 1.00000 + 1876 = 1.00000 + 1877 = 1.00000 + 1882 = 1.00000 + 1883 = 1.00000 + 1891 = 1.00000 + 1892 = 1.00000 + 1897 = 1.00000 + 1898 = 1.00000 + 1935 = 1.00000 + 1936 = 1.00000 + 1937 = 1.00000 + 1938 = 1.00000 + 1940 = 1.00000 + 1942 = 1.00000 + 1943 = 1.00000 + 1947 = 1.00000 + 1949 = 1.00000 + 1950 = 1.00000 + 1951 = 1.00000 + 1952 = 1.00000 + 1953 = 1.00000 + 1955 = 1.00000 + 1957 = 1.00000 + 1958 = 1.00000 + 1962 = 1.00000 + 1964 = 1.00000 + 1971 = 1.00000 + 1973 = 1.00000 + 1977 = 1.00000 + 1979 = 1.00000 + 1980 = 1.00000 + 1982 = 1.00000 + 1986 = 1.00000 + 1988 = 1.00000 + 2020 = 1.00000 + 2021 = 1.00000 + 2023 = 1.00000 + 2024 = 1.00000 + 2029 = 1.00000 + 2030 = 1.00000 + 2032 = 1.00000 + 2033 = 1.00000 + 2043 = 1.00000 + 2045 = 1.00000 + 2049 = 1.00000 + 2051 = 1.00000 + 2052 = 1.00000 + 2054 = 1.00000 + 2058 = 1.00000 + 2060 = 1.00000 + 2067 = 1.00000 + 2068 = 1.00000 + 2069 = 1.00000 + 2071 = 1.00000 + 2072 = 1.00000 + 2073 = 1.00000 + 2075 = 1.00000 + 2076 = 1.00000 + 2077 = 1.00000 + 2078 = 1.00000 + 2080 = 1.00000 + 2081 = 1.00000 + 2082 = 1.00000 + 2084 = 1.00000 + 2116 = 1.00000 + 2117 = 1.00000 + 2119 = 1.00000 + 2120 = 1.00000 + 2125 = 1.00000 + 2126 = 1.00000 + 2128 = 1.00000 + 2129 = 1.00000 + 2139 = 1.00000 + 2141 = 1.00000 + 2145 = 1.00000 + 2147 = 1.00000 + 2148 = 1.00000 + 2150 = 1.00000 + 2154 = 1.00000 + 2156 = 1.00000 + 2163 = 1.00000 + 2164 = 1.00000 + 2165 = 1.00000 + 2167 = 1.00000 + 2168 = 1.00000 + 2169 = 1.00000 + 2171 = 1.00000 + 2172 = 1.00000 + 2173 = 1.00000 + 2174 = 1.00000 + 2176 = 1.00000 + 2177 = 1.00000 + 2178 = 1.00000 + 2180 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=4 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 3 = 1.00000 + 4 = 1.00000 + 5 = 1.00000 + 6 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 9 = 1.00000 + 10 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 15 = 1.00000 + 17 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 24 = 1.00000 + 25 = 1.00000 + 26 = 1.00000 + 27 = 1.00000 + 28 = 1.00000 + 30 = 1.00000 + 31 = 1.00000 + 32 = 1.00000 + 33 = 1.00000 + 34 = 1.00000 + 37 = 1.00000 + 38 = 1.00000 + 42 = 1.00000 + 44 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 50 = 1.00000 + 51 = 1.00000 + 53 = 1.00000 + 55 = 1.00000 + 56 = 1.00000 + 61 = 1.00000 + 62 = 1.00000 + 66 = 1.00000 + 68 = 1.00000 + 72 = 1.00000 + 73 = 1.00000 + 81 = 1.00000 + 82 = 1.00000 + 83 = 1.00000 + 84 = 1.00000 + 85 = 1.00000 + 87 = 1.00000 + 89 = 1.00000 + 93 = 1.00000 + 94 = 1.00000 + 96 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 99 = 1.00000 + 100 = 1.00000 + 105 = 1.00000 + 107 = 1.00000 + 111 = 1.00000 + 113 = 1.00000 + 120 = 1.00000 + 122 = 1.00000 + 126 = 1.00000 + 127 = 1.00000 + 135 = 1.00000 + 136 = 1.00000 + 137 = 1.00000 + 138 = 1.00000 + 139 = 1.00000 + 142 = 1.00000 + 143 = 1.00000 + 147 = 1.00000 + 148 = 1.00000 + 149 = 1.00000 + 150 = 1.00000 + 151 = 1.00000 + 153 = 1.00000 + 154 = 1.00000 + 157 = 1.00000 + 158 = 1.00000 + 166 = 1.00000 + 167 = 1.00000 + 172 = 1.00000 + 173 = 1.00000 + 180 = 1.00000 + 181 = 1.00000 + 189 = 1.00000 + 190 = 1.00000 + 195 = 1.00000 + 196 = 1.00000 + 198 = 1.00000 + 199 = 1.00000 + 216 = 1.00000 + 217 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 227 = 1.00000 + 228 = 1.00000 + 230 = 1.00000 + 232 = 1.00000 + 233 = 1.00000 + 238 = 1.00000 + 239 = 1.00000 + 243 = 1.00000 + 245 = 1.00000 + 249 = 1.00000 + 250 = 1.00000 + 251 = 1.00000 + 252 = 1.00000 + 254 = 1.00000 + 256 = 1.00000 + 257 = 1.00000 + 262 = 1.00000 + 263 = 1.00000 + 267 = 1.00000 + 269 = 1.00000 + 279 = 1.00000 + 281 = 1.00000 + 288 = 1.00000 + 290 = 1.00000 + 294 = 1.00000 + 296 = 1.00000 + 303 = 1.00000 + 305 = 1.00000 + 316 = 1.00000 + 317 = 1.00000 + 322 = 1.00000 + 323 = 1.00000 + 331 = 1.00000 + 332 = 1.00000 + 337 = 1.00000 + 338 = 1.00000 + 375 = 1.00000 + 376 = 1.00000 + 377 = 1.00000 + 378 = 1.00000 + 379 = 1.00000 + 381 = 1.00000 + 383 = 1.00000 + 387 = 1.00000 + 388 = 1.00000 + 390 = 1.00000 + 391 = 1.00000 + 392 = 1.00000 + 393 = 1.00000 + 394 = 1.00000 + 399 = 1.00000 + 401 = 1.00000 + 405 = 1.00000 + 407 = 1.00000 + 414 = 1.00000 + 416 = 1.00000 + 420 = 1.00000 + 421 = 1.00000 + 429 = 1.00000 + 430 = 1.00000 + 431 = 1.00000 + 432 = 1.00000 + 433 = 1.00000 + 434 = 1.00000 + 435 = 1.00000 + 436 = 1.00000 + 437 = 1.00000 + 439 = 1.00000 + 440 = 1.00000 + 441 = 1.00000 + 442 = 1.00000 + 443 = 1.00000 + 444 = 1.00000 + 445 = 1.00000 + 446 = 1.00000 + 447 = 1.00000 + 448 = 1.00000 + 451 = 1.00000 + 452 = 1.00000 + 453 = 1.00000 + 455 = 1.00000 + 459 = 1.00000 + 460 = 1.00000 + 461 = 1.00000 + 463 = 1.00000 + 464 = 1.00000 + 466 = 1.00000 + 467 = 1.00000 + 468 = 1.00000 + 470 = 1.00000 + 474 = 1.00000 + 475 = 1.00000 + 483 = 1.00000 + 484 = 1.00000 + 489 = 1.00000 + 490 = 1.00000 + 492 = 1.00000 + 493 = 1.00000 + 510 = 1.00000 + 511 = 1.00000 + 519 = 1.00000 + 520 = 1.00000 + 521 = 1.00000 + 523 = 1.00000 + 524 = 1.00000 + 525 = 1.00000 + 526 = 1.00000 + 527 = 1.00000 + 528 = 1.00000 + 529 = 1.00000 + 532 = 1.00000 + 533 = 1.00000 + 538 = 1.00000 + 539 = 1.00000 + 541 = 1.00000 + 542 = 1.00000 + 546 = 1.00000 + 547 = 1.00000 + 555 = 1.00000 + 557 = 1.00000 + 564 = 1.00000 + 566 = 1.00000 + 570 = 1.00000 + 572 = 1.00000 + 579 = 1.00000 + 581 = 1.00000 + 591 = 1.00000 + 592 = 1.00000 + 593 = 1.00000 + 595 = 1.00000 + 596 = 1.00000 + 598 = 1.00000 + 599 = 1.00000 + 600 = 1.00000 + 602 = 1.00000 + 606 = 1.00000 + 607 = 1.00000 + 608 = 1.00000 + 610 = 1.00000 + 611 = 1.00000 + 613 = 1.00000 + 614 = 1.00000 + 615 = 1.00000 + 617 = 1.00000 + 652 = 1.00000 + 653 = 1.00000 + 655 = 1.00000 + 656 = 1.00000 + 661 = 1.00000 + 662 = 1.00000 + 664 = 1.00000 + 665 = 1.00000 + 675 = 1.00000 + 676 = 1.00000 + 677 = 1.00000 + 678 = 1.00000 + 679 = 1.00000 + 682 = 1.00000 + 683 = 1.00000 + 687 = 1.00000 + 688 = 1.00000 + 689 = 1.00000 + 690 = 1.00000 + 691 = 1.00000 + 693 = 1.00000 + 694 = 1.00000 + 697 = 1.00000 + 698 = 1.00000 + 706 = 1.00000 + 707 = 1.00000 + 712 = 1.00000 + 713 = 1.00000 + 720 = 1.00000 + 721 = 1.00000 + 729 = 1.00000 + 730 = 1.00000 + 735 = 1.00000 + 736 = 1.00000 + 738 = 1.00000 + 739 = 1.00000 + 756 = 1.00000 + 757 = 1.00000 + 765 = 1.00000 + 766 = 1.00000 + 767 = 1.00000 + 768 = 1.00000 + 769 = 1.00000 + 770 = 1.00000 + 771 = 1.00000 + 772 = 1.00000 + 773 = 1.00000 + 774 = 1.00000 + 776 = 1.00000 + 777 = 1.00000 + 778 = 1.00000 + 779 = 1.00000 + 780 = 1.00000 + 781 = 1.00000 + 783 = 1.00000 + 784 = 1.00000 + 785 = 1.00000 + 787 = 1.00000 + 788 = 1.00000 + 792 = 1.00000 + 794 = 1.00000 + 795 = 1.00000 + 796 = 1.00000 + 797 = 1.00000 + 798 = 1.00000 + 800 = 1.00000 + 802 = 1.00000 + 803 = 1.00000 + 807 = 1.00000 + 809 = 1.00000 + 810 = 1.00000 + 811 = 1.00000 + 819 = 1.00000 + 820 = 1.00000 + 821 = 1.00000 + 822 = 1.00000 + 824 = 1.00000 + 825 = 1.00000 + 826 = 1.00000 + 828 = 1.00000 + 829 = 1.00000 + 830 = 1.00000 + 834 = 1.00000 + 836 = 1.00000 + 837 = 1.00000 + 839 = 1.00000 + 843 = 1.00000 + 845 = 1.00000 + 846 = 1.00000 + 847 = 1.00000 + 856 = 1.00000 + 857 = 1.00000 + 862 = 1.00000 + 863 = 1.00000 + 871 = 1.00000 + 872 = 1.00000 + 877 = 1.00000 + 878 = 1.00000 + 915 = 1.00000 + 916 = 1.00000 + 917 = 1.00000 + 918 = 1.00000 + 920 = 1.00000 + 922 = 1.00000 + 923 = 1.00000 + 927 = 1.00000 + 929 = 1.00000 + 930 = 1.00000 + 931 = 1.00000 + 932 = 1.00000 + 933 = 1.00000 + 935 = 1.00000 + 937 = 1.00000 + 938 = 1.00000 + 942 = 1.00000 + 944 = 1.00000 + 951 = 1.00000 + 953 = 1.00000 + 957 = 1.00000 + 959 = 1.00000 + 960 = 1.00000 + 962 = 1.00000 + 966 = 1.00000 + 968 = 1.00000 + 975 = 1.00000 + 976 = 1.00000 + 981 = 1.00000 + 982 = 1.00000 + 984 = 1.00000 + 985 = 1.00000 + 1002 = 1.00000 + 1003 = 1.00000 + 1011 = 1.00000 + 1012 = 1.00000 + 1013 = 1.00000 + 1015 = 1.00000 + 1016 = 1.00000 + 1017 = 1.00000 + 1018 = 1.00000 + 1019 = 1.00000 + 1020 = 1.00000 + 1021 = 1.00000 + 1024 = 1.00000 + 1025 = 1.00000 + 1030 = 1.00000 + 1031 = 1.00000 + 1033 = 1.00000 + 1034 = 1.00000 + 1038 = 1.00000 + 1039 = 1.00000 + 1047 = 1.00000 + 1048 = 1.00000 + 1049 = 1.00000 + 1050 = 1.00000 + 1052 = 1.00000 + 1053 = 1.00000 + 1054 = 1.00000 + 1056 = 1.00000 + 1057 = 1.00000 + 1058 = 1.00000 + 1062 = 1.00000 + 1064 = 1.00000 + 1065 = 1.00000 + 1067 = 1.00000 + 1071 = 1.00000 + 1073 = 1.00000 + 1074 = 1.00000 + 1075 = 1.00000 + 1083 = 1.00000 + 1084 = 1.00000 + 1085 = 1.00000 + 1086 = 1.00000 + 1087 = 1.00000 + 1088 = 1.00000 + 1089 = 1.00000 + 1090 = 1.00000 + 1091 = 1.00000 + 1092 = 1.00000 + 1093 = 1.00000 + 1094 = 1.00000 + 1096 = 1.00000 + 1097 = 1.00000 + 1098 = 1.00000 + 1100 = 1.00000 + 1101 = 1.00000 + 1102 = 1.00000 + 1103 = 1.00000 + 1105 = 1.00000 + 1106 = 1.00000 + 1107 = 1.00000 + 1109 = 1.00000 + 1110 = 1.00000 + 1111 = 1.00000 + 1144 = 1.00000 + 1145 = 1.00000 + 1147 = 1.00000 + 1148 = 1.00000 + 1153 = 1.00000 + 1154 = 1.00000 + 1156 = 1.00000 + 1157 = 1.00000 + 1167 = 1.00000 + 1169 = 1.00000 + 1173 = 1.00000 + 1175 = 1.00000 + 1176 = 1.00000 + 1178 = 1.00000 + 1182 = 1.00000 + 1184 = 1.00000 + 1191 = 1.00000 + 1192 = 1.00000 + 1193 = 1.00000 + 1195 = 1.00000 + 1196 = 1.00000 + 1197 = 1.00000 + 1199 = 1.00000 + 1200 = 1.00000 + 1201 = 1.00000 + 1202 = 1.00000 + 1204 = 1.00000 + 1205 = 1.00000 + 1206 = 1.00000 + 1208 = 1.00000 + 1215 = 1.00000 + 1216 = 1.00000 + 1217 = 1.00000 + 1218 = 1.00000 + 1220 = 1.00000 + 1222 = 1.00000 + 1223 = 1.00000 + 1228 = 1.00000 + 1229 = 1.00000 + 1233 = 1.00000 + 1235 = 1.00000 + 1239 = 1.00000 + 1240 = 1.00000 + 1241 = 1.00000 + 1242 = 1.00000 + 1244 = 1.00000 + 1246 = 1.00000 + 1247 = 1.00000 + 1252 = 1.00000 + 1253 = 1.00000 + 1257 = 1.00000 + 1259 = 1.00000 + 1269 = 1.00000 + 1271 = 1.00000 + 1278 = 1.00000 + 1280 = 1.00000 + 1284 = 1.00000 + 1286 = 1.00000 + 1293 = 1.00000 + 1295 = 1.00000 + 1306 = 1.00000 + 1307 = 1.00000 + 1312 = 1.00000 + 1313 = 1.00000 + 1321 = 1.00000 + 1322 = 1.00000 + 1327 = 1.00000 + 1328 = 1.00000 + 1365 = 1.00000 + 1366 = 1.00000 + 1367 = 1.00000 + 1368 = 1.00000 + 1370 = 1.00000 + 1372 = 1.00000 + 1373 = 1.00000 + 1378 = 1.00000 + 1379 = 1.00000 + 1383 = 1.00000 + 1385 = 1.00000 + 1389 = 1.00000 + 1390 = 1.00000 + 1391 = 1.00000 + 1392 = 1.00000 + 1394 = 1.00000 + 1396 = 1.00000 + 1397 = 1.00000 + 1402 = 1.00000 + 1403 = 1.00000 + 1407 = 1.00000 + 1409 = 1.00000 + 1419 = 1.00000 + 1421 = 1.00000 + 1428 = 1.00000 + 1430 = 1.00000 + 1434 = 1.00000 + 1436 = 1.00000 + 1443 = 1.00000 + 1445 = 1.00000 + 1456 = 1.00000 + 1457 = 1.00000 + 1462 = 1.00000 + 1463 = 1.00000 + 1471 = 1.00000 + 1472 = 1.00000 + 1477 = 1.00000 + 1478 = 1.00000 + 1515 = 1.00000 + 1517 = 1.00000 + 1524 = 1.00000 + 1526 = 1.00000 + 1530 = 1.00000 + 1532 = 1.00000 + 1539 = 1.00000 + 1541 = 1.00000 + 1551 = 1.00000 + 1552 = 1.00000 + 1553 = 1.00000 + 1555 = 1.00000 + 1556 = 1.00000 + 1558 = 1.00000 + 1559 = 1.00000 + 1560 = 1.00000 + 1562 = 1.00000 + 1566 = 1.00000 + 1567 = 1.00000 + 1568 = 1.00000 + 1570 = 1.00000 + 1571 = 1.00000 + 1573 = 1.00000 + 1574 = 1.00000 + 1575 = 1.00000 + 1577 = 1.00000 + 1612 = 1.00000 + 1613 = 1.00000 + 1615 = 1.00000 + 1616 = 1.00000 + 1621 = 1.00000 + 1622 = 1.00000 + 1624 = 1.00000 + 1625 = 1.00000 + 1635 = 1.00000 + 1637 = 1.00000 + 1644 = 1.00000 + 1646 = 1.00000 + 1650 = 1.00000 + 1652 = 1.00000 + 1659 = 1.00000 + 1661 = 1.00000 + 1671 = 1.00000 + 1672 = 1.00000 + 1673 = 1.00000 + 1675 = 1.00000 + 1676 = 1.00000 + 1678 = 1.00000 + 1679 = 1.00000 + 1680 = 1.00000 + 1682 = 1.00000 + 1686 = 1.00000 + 1687 = 1.00000 + 1688 = 1.00000 + 1690 = 1.00000 + 1691 = 1.00000 + 1693 = 1.00000 + 1694 = 1.00000 + 1695 = 1.00000 + 1697 = 1.00000 + 1732 = 1.00000 + 1733 = 1.00000 + 1735 = 1.00000 + 1736 = 1.00000 + 1741 = 1.00000 + 1742 = 1.00000 + 1744 = 1.00000 + 1745 = 1.00000 + 1756 = 1.00000 + 1757 = 1.00000 + 1762 = 1.00000 + 1763 = 1.00000 + 1771 = 1.00000 + 1772 = 1.00000 + 1777 = 1.00000 + 1778 = 1.00000 + 1815 = 1.00000 + 1816 = 1.00000 + 1817 = 1.00000 + 1818 = 1.00000 + 1820 = 1.00000 + 1822 = 1.00000 + 1823 = 1.00000 + 1827 = 1.00000 + 1829 = 1.00000 + 1830 = 1.00000 + 1831 = 1.00000 + 1832 = 1.00000 + 1833 = 1.00000 + 1835 = 1.00000 + 1837 = 1.00000 + 1838 = 1.00000 + 1842 = 1.00000 + 1844 = 1.00000 + 1851 = 1.00000 + 1853 = 1.00000 + 1857 = 1.00000 + 1859 = 1.00000 + 1860 = 1.00000 + 1862 = 1.00000 + 1866 = 1.00000 + 1868 = 1.00000 + 1876 = 1.00000 + 1877 = 1.00000 + 1882 = 1.00000 + 1883 = 1.00000 + 1891 = 1.00000 + 1892 = 1.00000 + 1897 = 1.00000 + 1898 = 1.00000 + 1935 = 1.00000 + 1936 = 1.00000 + 1937 = 1.00000 + 1938 = 1.00000 + 1940 = 1.00000 + 1942 = 1.00000 + 1943 = 1.00000 + 1947 = 1.00000 + 1949 = 1.00000 + 1950 = 1.00000 + 1951 = 1.00000 + 1952 = 1.00000 + 1953 = 1.00000 + 1955 = 1.00000 + 1957 = 1.00000 + 1958 = 1.00000 + 1962 = 1.00000 + 1964 = 1.00000 + 1971 = 1.00000 + 1973 = 1.00000 + 1977 = 1.00000 + 1979 = 1.00000 + 1980 = 1.00000 + 1982 = 1.00000 + 1986 = 1.00000 + 1988 = 1.00000 + 2020 = 1.00000 + 2021 = 1.00000 + 2023 = 1.00000 + 2024 = 1.00000 + 2029 = 1.00000 + 2030 = 1.00000 + 2032 = 1.00000 + 2033 = 1.00000 + 2043 = 1.00000 + 2045 = 1.00000 + 2049 = 1.00000 + 2051 = 1.00000 + 2052 = 1.00000 + 2054 = 1.00000 + 2058 = 1.00000 + 2060 = 1.00000 + 2067 = 1.00000 + 2068 = 1.00000 + 2069 = 1.00000 + 2071 = 1.00000 + 2072 = 1.00000 + 2073 = 1.00000 + 2075 = 1.00000 + 2076 = 1.00000 + 2077 = 1.00000 + 2078 = 1.00000 + 2080 = 1.00000 + 2081 = 1.00000 + 2082 = 1.00000 + 2084 = 1.00000 + 2116 = 1.00000 + 2117 = 1.00000 + 2119 = 1.00000 + 2120 = 1.00000 + 2125 = 1.00000 + 2126 = 1.00000 + 2128 = 1.00000 + 2129 = 1.00000 + 2139 = 1.00000 + 2141 = 1.00000 + 2145 = 1.00000 + 2147 = 1.00000 + 2148 = 1.00000 + 2150 = 1.00000 + 2154 = 1.00000 + 2156 = 1.00000 + 2163 = 1.00000 + 2164 = 1.00000 + 2165 = 1.00000 + 2167 = 1.00000 + 2168 = 1.00000 + 2169 = 1.00000 + 2171 = 1.00000 + 2172 = 1.00000 + 2173 = 1.00000 + 2174 = 1.00000 + 2176 = 1.00000 + 2177 = 1.00000 + 2178 = 1.00000 + 2180 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=5 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 3 = 1.00000 + 4 = 1.00000 + 5 = 1.00000 + 6 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 9 = 1.00000 + 10 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 15 = 1.00000 + 17 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 24 = 1.00000 + 25 = 1.00000 + 26 = 1.00000 + 27 = 1.00000 + 28 = 1.00000 + 30 = 1.00000 + 31 = 1.00000 + 32 = 1.00000 + 33 = 1.00000 + 34 = 1.00000 + 37 = 1.00000 + 38 = 1.00000 + 42 = 1.00000 + 44 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 50 = 1.00000 + 51 = 1.00000 + 53 = 1.00000 + 55 = 1.00000 + 56 = 1.00000 + 61 = 1.00000 + 62 = 1.00000 + 66 = 1.00000 + 68 = 1.00000 + 72 = 1.00000 + 73 = 1.00000 + 81 = 1.00000 + 82 = 1.00000 + 83 = 1.00000 + 84 = 1.00000 + 85 = 1.00000 + 87 = 1.00000 + 89 = 1.00000 + 93 = 1.00000 + 94 = 1.00000 + 96 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 99 = 1.00000 + 100 = 1.00000 + 105 = 1.00000 + 107 = 1.00000 + 111 = 1.00000 + 113 = 1.00000 + 120 = 1.00000 + 122 = 1.00000 + 126 = 1.00000 + 127 = 1.00000 + 135 = 1.00000 + 136 = 1.00000 + 137 = 1.00000 + 138 = 1.00000 + 139 = 1.00000 + 142 = 1.00000 + 143 = 1.00000 + 147 = 1.00000 + 148 = 1.00000 + 149 = 1.00000 + 150 = 1.00000 + 151 = 1.00000 + 153 = 1.00000 + 154 = 1.00000 + 157 = 1.00000 + 158 = 1.00000 + 166 = 1.00000 + 167 = 1.00000 + 172 = 1.00000 + 173 = 1.00000 + 180 = 1.00000 + 181 = 1.00000 + 189 = 1.00000 + 190 = 1.00000 + 195 = 1.00000 + 196 = 1.00000 + 198 = 1.00000 + 199 = 1.00000 + 216 = 1.00000 + 217 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 227 = 1.00000 + 228 = 1.00000 + 230 = 1.00000 + 232 = 1.00000 + 233 = 1.00000 + 238 = 1.00000 + 239 = 1.00000 + 243 = 1.00000 + 245 = 1.00000 + 249 = 1.00000 + 250 = 1.00000 + 251 = 1.00000 + 252 = 1.00000 + 254 = 1.00000 + 256 = 1.00000 + 257 = 1.00000 + 262 = 1.00000 + 263 = 1.00000 + 267 = 1.00000 + 269 = 1.00000 + 279 = 1.00000 + 281 = 1.00000 + 288 = 1.00000 + 290 = 1.00000 + 294 = 1.00000 + 296 = 1.00000 + 303 = 1.00000 + 305 = 1.00000 + 316 = 1.00000 + 317 = 1.00000 + 322 = 1.00000 + 323 = 1.00000 + 331 = 1.00000 + 332 = 1.00000 + 337 = 1.00000 + 338 = 1.00000 + 375 = 1.00000 + 376 = 1.00000 + 377 = 1.00000 + 378 = 1.00000 + 379 = 1.00000 + 381 = 1.00000 + 383 = 1.00000 + 387 = 1.00000 + 388 = 1.00000 + 390 = 1.00000 + 391 = 1.00000 + 392 = 1.00000 + 393 = 1.00000 + 394 = 1.00000 + 399 = 1.00000 + 401 = 1.00000 + 405 = 1.00000 + 407 = 1.00000 + 414 = 1.00000 + 416 = 1.00000 + 420 = 1.00000 + 421 = 1.00000 + 429 = 1.00000 + 430 = 1.00000 + 431 = 1.00000 + 432 = 1.00000 + 433 = 1.00000 + 434 = 1.00000 + 435 = 1.00000 + 436 = 1.00000 + 437 = 1.00000 + 439 = 1.00000 + 440 = 1.00000 + 441 = 1.00000 + 442 = 1.00000 + 443 = 1.00000 + 444 = 1.00000 + 445 = 1.00000 + 446 = 1.00000 + 447 = 1.00000 + 448 = 1.00000 + 451 = 1.00000 + 452 = 1.00000 + 453 = 1.00000 + 455 = 1.00000 + 459 = 1.00000 + 460 = 1.00000 + 461 = 1.00000 + 463 = 1.00000 + 464 = 1.00000 + 466 = 1.00000 + 467 = 1.00000 + 468 = 1.00000 + 470 = 1.00000 + 474 = 1.00000 + 475 = 1.00000 + 483 = 1.00000 + 484 = 1.00000 + 489 = 1.00000 + 490 = 1.00000 + 492 = 1.00000 + 493 = 1.00000 + 510 = 1.00000 + 511 = 1.00000 + 519 = 1.00000 + 520 = 1.00000 + 521 = 1.00000 + 523 = 1.00000 + 524 = 1.00000 + 525 = 1.00000 + 526 = 1.00000 + 527 = 1.00000 + 528 = 1.00000 + 529 = 1.00000 + 532 = 1.00000 + 533 = 1.00000 + 538 = 1.00000 + 539 = 1.00000 + 541 = 1.00000 + 542 = 1.00000 + 546 = 1.00000 + 547 = 1.00000 + 555 = 1.00000 + 557 = 1.00000 + 564 = 1.00000 + 566 = 1.00000 + 570 = 1.00000 + 572 = 1.00000 + 579 = 1.00000 + 581 = 1.00000 + 591 = 1.00000 + 592 = 1.00000 + 593 = 1.00000 + 595 = 1.00000 + 596 = 1.00000 + 598 = 1.00000 + 599 = 1.00000 + 600 = 1.00000 + 602 = 1.00000 + 606 = 1.00000 + 607 = 1.00000 + 608 = 1.00000 + 610 = 1.00000 + 611 = 1.00000 + 613 = 1.00000 + 614 = 1.00000 + 615 = 1.00000 + 617 = 1.00000 + 652 = 1.00000 + 653 = 1.00000 + 655 = 1.00000 + 656 = 1.00000 + 661 = 1.00000 + 662 = 1.00000 + 664 = 1.00000 + 665 = 1.00000 + 675 = 1.00000 + 676 = 1.00000 + 677 = 1.00000 + 678 = 1.00000 + 679 = 1.00000 + 682 = 1.00000 + 683 = 1.00000 + 687 = 1.00000 + 688 = 1.00000 + 689 = 1.00000 + 690 = 1.00000 + 691 = 1.00000 + 693 = 1.00000 + 694 = 1.00000 + 697 = 1.00000 + 698 = 1.00000 + 706 = 1.00000 + 707 = 1.00000 + 712 = 1.00000 + 713 = 1.00000 + 720 = 1.00000 + 721 = 1.00000 + 729 = 1.00000 + 730 = 1.00000 + 735 = 1.00000 + 736 = 1.00000 + 738 = 1.00000 + 739 = 1.00000 + 756 = 1.00000 + 757 = 1.00000 + 765 = 1.00000 + 766 = 1.00000 + 767 = 1.00000 + 768 = 1.00000 + 769 = 1.00000 + 770 = 1.00000 + 771 = 1.00000 + 772 = 1.00000 + 773 = 1.00000 + 774 = 1.00000 + 776 = 1.00000 + 777 = 1.00000 + 778 = 1.00000 + 779 = 1.00000 + 780 = 1.00000 + 781 = 1.00000 + 783 = 1.00000 + 784 = 1.00000 + 785 = 1.00000 + 787 = 1.00000 + 788 = 1.00000 + 792 = 1.00000 + 794 = 1.00000 + 795 = 1.00000 + 796 = 1.00000 + 797 = 1.00000 + 798 = 1.00000 + 800 = 1.00000 + 802 = 1.00000 + 803 = 1.00000 + 807 = 1.00000 + 809 = 1.00000 + 810 = 1.00000 + 811 = 1.00000 + 819 = 1.00000 + 820 = 1.00000 + 821 = 1.00000 + 822 = 1.00000 + 824 = 1.00000 + 825 = 1.00000 + 826 = 1.00000 + 828 = 1.00000 + 829 = 1.00000 + 830 = 1.00000 + 834 = 1.00000 + 836 = 1.00000 + 837 = 1.00000 + 839 = 1.00000 + 843 = 1.00000 + 845 = 1.00000 + 846 = 1.00000 + 847 = 1.00000 + 856 = 1.00000 + 857 = 1.00000 + 862 = 1.00000 + 863 = 1.00000 + 871 = 1.00000 + 872 = 1.00000 + 877 = 1.00000 + 878 = 1.00000 + 915 = 1.00000 + 916 = 1.00000 + 917 = 1.00000 + 918 = 1.00000 + 920 = 1.00000 + 922 = 1.00000 + 923 = 1.00000 + 927 = 1.00000 + 929 = 1.00000 + 930 = 1.00000 + 931 = 1.00000 + 932 = 1.00000 + 933 = 1.00000 + 935 = 1.00000 + 937 = 1.00000 + 938 = 1.00000 + 942 = 1.00000 + 944 = 1.00000 + 951 = 1.00000 + 953 = 1.00000 + 957 = 1.00000 + 959 = 1.00000 + 960 = 1.00000 + 962 = 1.00000 + 966 = 1.00000 + 968 = 1.00000 + 975 = 1.00000 + 976 = 1.00000 + 981 = 1.00000 + 982 = 1.00000 + 984 = 1.00000 + 985 = 1.00000 + 1002 = 1.00000 + 1003 = 1.00000 + 1011 = 1.00000 + 1012 = 1.00000 + 1013 = 1.00000 + 1015 = 1.00000 + 1016 = 1.00000 + 1017 = 1.00000 + 1018 = 1.00000 + 1019 = 1.00000 + 1020 = 1.00000 + 1021 = 1.00000 + 1024 = 1.00000 + 1025 = 1.00000 + 1030 = 1.00000 + 1031 = 1.00000 + 1033 = 1.00000 + 1034 = 1.00000 + 1038 = 1.00000 + 1039 = 1.00000 + 1047 = 1.00000 + 1048 = 1.00000 + 1049 = 1.00000 + 1050 = 1.00000 + 1052 = 1.00000 + 1053 = 1.00000 + 1054 = 1.00000 + 1056 = 1.00000 + 1057 = 1.00000 + 1058 = 1.00000 + 1062 = 1.00000 + 1064 = 1.00000 + 1065 = 1.00000 + 1067 = 1.00000 + 1071 = 1.00000 + 1073 = 1.00000 + 1074 = 1.00000 + 1075 = 1.00000 + 1083 = 1.00000 + 1084 = 1.00000 + 1085 = 1.00000 + 1086 = 1.00000 + 1087 = 1.00000 + 1088 = 1.00000 + 1089 = 1.00000 + 1090 = 1.00000 + 1091 = 1.00000 + 1092 = 1.00000 + 1093 = 1.00000 + 1094 = 1.00000 + 1096 = 1.00000 + 1097 = 1.00000 + 1098 = 1.00000 + 1100 = 1.00000 + 1101 = 1.00000 + 1102 = 1.00000 + 1103 = 1.00000 + 1105 = 1.00000 + 1106 = 1.00000 + 1107 = 1.00000 + 1109 = 1.00000 + 1110 = 1.00000 + 1111 = 1.00000 + 1144 = 1.00000 + 1145 = 1.00000 + 1147 = 1.00000 + 1148 = 1.00000 + 1153 = 1.00000 + 1154 = 1.00000 + 1156 = 1.00000 + 1157 = 1.00000 + 1167 = 1.00000 + 1169 = 1.00000 + 1173 = 1.00000 + 1175 = 1.00000 + 1176 = 1.00000 + 1178 = 1.00000 + 1182 = 1.00000 + 1184 = 1.00000 + 1191 = 1.00000 + 1192 = 1.00000 + 1193 = 1.00000 + 1195 = 1.00000 + 1196 = 1.00000 + 1197 = 1.00000 + 1199 = 1.00000 + 1200 = 1.00000 + 1201 = 1.00000 + 1202 = 1.00000 + 1204 = 1.00000 + 1205 = 1.00000 + 1206 = 1.00000 + 1208 = 1.00000 + 1215 = 1.00000 + 1216 = 1.00000 + 1217 = 1.00000 + 1218 = 1.00000 + 1220 = 1.00000 + 1222 = 1.00000 + 1223 = 1.00000 + 1228 = 1.00000 + 1229 = 1.00000 + 1233 = 1.00000 + 1235 = 1.00000 + 1239 = 1.00000 + 1240 = 1.00000 + 1241 = 1.00000 + 1242 = 1.00000 + 1244 = 1.00000 + 1246 = 1.00000 + 1247 = 1.00000 + 1252 = 1.00000 + 1253 = 1.00000 + 1257 = 1.00000 + 1259 = 1.00000 + 1269 = 1.00000 + 1271 = 1.00000 + 1278 = 1.00000 + 1280 = 1.00000 + 1284 = 1.00000 + 1286 = 1.00000 + 1293 = 1.00000 + 1295 = 1.00000 + 1306 = 1.00000 + 1307 = 1.00000 + 1312 = 1.00000 + 1313 = 1.00000 + 1321 = 1.00000 + 1322 = 1.00000 + 1327 = 1.00000 + 1328 = 1.00000 + 1365 = 1.00000 + 1366 = 1.00000 + 1367 = 1.00000 + 1368 = 1.00000 + 1369 = 1.00000 + 1370 = 1.00000 + 1371 = 1.00000 + 1372 = 1.00000 + 1373 = 1.00000 + 1374 = 1.00000 + 1375 = 1.00000 + 1377 = 1.00000 + 1378 = 1.00000 + 1379 = 1.00000 + 1380 = 1.00000 + 1381 = 1.00000 + 1383 = 1.00000 + 1384 = 1.00000 + 1385 = 1.00000 + 1386 = 1.00000 + 1387 = 1.00000 + 1389 = 1.00000 + 1390 = 1.00000 + 1391 = 1.00000 + 1392 = 1.00000 + 1394 = 1.00000 + 1396 = 1.00000 + 1397 = 1.00000 + 1402 = 1.00000 + 1403 = 1.00000 + 1407 = 1.00000 + 1409 = 1.00000 + 1413 = 1.00000 + 1414 = 1.00000 + 1419 = 1.00000 + 1420 = 1.00000 + 1421 = 1.00000 + 1422 = 1.00000 + 1423 = 1.00000 + 1425 = 1.00000 + 1426 = 1.00000 + 1428 = 1.00000 + 1429 = 1.00000 + 1430 = 1.00000 + 1431 = 1.00000 + 1432 = 1.00000 + 1434 = 1.00000 + 1436 = 1.00000 + 1443 = 1.00000 + 1445 = 1.00000 + 1449 = 1.00000 + 1450 = 1.00000 + 1455 = 1.00000 + 1456 = 1.00000 + 1457 = 1.00000 + 1458 = 1.00000 + 1459 = 1.00000 + 1461 = 1.00000 + 1462 = 1.00000 + 1463 = 1.00000 + 1464 = 1.00000 + 1465 = 1.00000 + 1467 = 1.00000 + 1468 = 1.00000 + 1471 = 1.00000 + 1472 = 1.00000 + 1477 = 1.00000 + 1478 = 1.00000 + 1485 = 1.00000 + 1486 = 1.00000 + 1491 = 1.00000 + 1492 = 1.00000 + 1494 = 1.00000 + 1495 = 1.00000 + 1497 = 1.00000 + 1498 = 1.00000 + 1509 = 1.00000 + 1510 = 1.00000 + 1515 = 1.00000 + 1517 = 1.00000 + 1524 = 1.00000 + 1526 = 1.00000 + 1530 = 1.00000 + 1532 = 1.00000 + 1539 = 1.00000 + 1541 = 1.00000 + 1551 = 1.00000 + 1552 = 1.00000 + 1553 = 1.00000 + 1555 = 1.00000 + 1556 = 1.00000 + 1558 = 1.00000 + 1559 = 1.00000 + 1560 = 1.00000 + 1562 = 1.00000 + 1566 = 1.00000 + 1567 = 1.00000 + 1568 = 1.00000 + 1570 = 1.00000 + 1571 = 1.00000 + 1573 = 1.00000 + 1574 = 1.00000 + 1575 = 1.00000 + 1577 = 1.00000 + 1612 = 1.00000 + 1613 = 1.00000 + 1615 = 1.00000 + 1616 = 1.00000 + 1621 = 1.00000 + 1622 = 1.00000 + 1624 = 1.00000 + 1625 = 1.00000 + 1635 = 1.00000 + 1636 = 1.00000 + 1637 = 1.00000 + 1638 = 1.00000 + 1639 = 1.00000 + 1641 = 1.00000 + 1642 = 1.00000 + 1644 = 1.00000 + 1645 = 1.00000 + 1646 = 1.00000 + 1647 = 1.00000 + 1648 = 1.00000 + 1650 = 1.00000 + 1652 = 1.00000 + 1659 = 1.00000 + 1661 = 1.00000 + 1665 = 1.00000 + 1666 = 1.00000 + 1671 = 1.00000 + 1672 = 1.00000 + 1673 = 1.00000 + 1674 = 1.00000 + 1675 = 1.00000 + 1676 = 1.00000 + 1677 = 1.00000 + 1678 = 1.00000 + 1679 = 1.00000 + 1680 = 1.00000 + 1681 = 1.00000 + 1682 = 1.00000 + 1683 = 1.00000 + 1684 = 1.00000 + 1686 = 1.00000 + 1687 = 1.00000 + 1688 = 1.00000 + 1690 = 1.00000 + 1691 = 1.00000 + 1693 = 1.00000 + 1694 = 1.00000 + 1695 = 1.00000 + 1697 = 1.00000 + 1701 = 1.00000 + 1702 = 1.00000 + 1707 = 1.00000 + 1708 = 1.00000 + 1710 = 1.00000 + 1711 = 1.00000 + 1713 = 1.00000 + 1714 = 1.00000 + 1725 = 1.00000 + 1726 = 1.00000 + 1731 = 1.00000 + 1732 = 1.00000 + 1733 = 1.00000 + 1734 = 1.00000 + 1735 = 1.00000 + 1736 = 1.00000 + 1737 = 1.00000 + 1738 = 1.00000 + 1741 = 1.00000 + 1742 = 1.00000 + 1744 = 1.00000 + 1745 = 1.00000 + 1749 = 1.00000 + 1750 = 1.00000 + 1756 = 1.00000 + 1757 = 1.00000 + 1762 = 1.00000 + 1763 = 1.00000 + 1771 = 1.00000 + 1772 = 1.00000 + 1777 = 1.00000 + 1778 = 1.00000 + 1815 = 1.00000 + 1816 = 1.00000 + 1817 = 1.00000 + 1818 = 1.00000 + 1820 = 1.00000 + 1822 = 1.00000 + 1823 = 1.00000 + 1827 = 1.00000 + 1829 = 1.00000 + 1830 = 1.00000 + 1831 = 1.00000 + 1832 = 1.00000 + 1833 = 1.00000 + 1835 = 1.00000 + 1837 = 1.00000 + 1838 = 1.00000 + 1842 = 1.00000 + 1844 = 1.00000 + 1851 = 1.00000 + 1853 = 1.00000 + 1857 = 1.00000 + 1859 = 1.00000 + 1860 = 1.00000 + 1862 = 1.00000 + 1866 = 1.00000 + 1868 = 1.00000 + 1875 = 1.00000 + 1876 = 1.00000 + 1877 = 1.00000 + 1878 = 1.00000 + 1879 = 1.00000 + 1881 = 1.00000 + 1882 = 1.00000 + 1883 = 1.00000 + 1884 = 1.00000 + 1885 = 1.00000 + 1887 = 1.00000 + 1888 = 1.00000 + 1891 = 1.00000 + 1892 = 1.00000 + 1897 = 1.00000 + 1898 = 1.00000 + 1905 = 1.00000 + 1906 = 1.00000 + 1911 = 1.00000 + 1912 = 1.00000 + 1914 = 1.00000 + 1915 = 1.00000 + 1917 = 1.00000 + 1918 = 1.00000 + 1929 = 1.00000 + 1930 = 1.00000 + 1935 = 1.00000 + 1936 = 1.00000 + 1937 = 1.00000 + 1938 = 1.00000 + 1939 = 1.00000 + 1940 = 1.00000 + 1941 = 1.00000 + 1942 = 1.00000 + 1943 = 1.00000 + 1944 = 1.00000 + 1945 = 1.00000 + 1947 = 1.00000 + 1948 = 1.00000 + 1949 = 1.00000 + 1950 = 1.00000 + 1951 = 1.00000 + 1952 = 1.00000 + 1953 = 1.00000 + 1955 = 1.00000 + 1957 = 1.00000 + 1958 = 1.00000 + 1962 = 1.00000 + 1964 = 1.00000 + 1965 = 1.00000 + 1966 = 1.00000 + 1971 = 1.00000 + 1972 = 1.00000 + 1973 = 1.00000 + 1974 = 1.00000 + 1975 = 1.00000 + 1977 = 1.00000 + 1978 = 1.00000 + 1979 = 1.00000 + 1980 = 1.00000 + 1982 = 1.00000 + 1986 = 1.00000 + 1988 = 1.00000 + 1989 = 1.00000 + 1990 = 1.00000 + 2020 = 1.00000 + 2021 = 1.00000 + 2023 = 1.00000 + 2024 = 1.00000 + 2029 = 1.00000 + 2030 = 1.00000 + 2032 = 1.00000 + 2033 = 1.00000 + 2043 = 1.00000 + 2045 = 1.00000 + 2049 = 1.00000 + 2051 = 1.00000 + 2052 = 1.00000 + 2054 = 1.00000 + 2058 = 1.00000 + 2060 = 1.00000 + 2067 = 1.00000 + 2068 = 1.00000 + 2069 = 1.00000 + 2071 = 1.00000 + 2072 = 1.00000 + 2073 = 1.00000 + 2075 = 1.00000 + 2076 = 1.00000 + 2077 = 1.00000 + 2078 = 1.00000 + 2080 = 1.00000 + 2081 = 1.00000 + 2082 = 1.00000 + 2084 = 1.00000 + 2091 = 1.00000 + 2092 = 1.00000 + 2094 = 1.00000 + 2095 = 1.00000 + 2097 = 1.00000 + 2098 = 1.00000 + 2109 = 1.00000 + 2110 = 1.00000 + 2115 = 1.00000 + 2116 = 1.00000 + 2117 = 1.00000 + 2118 = 1.00000 + 2119 = 1.00000 + 2120 = 1.00000 + 2121 = 1.00000 + 2122 = 1.00000 + 2125 = 1.00000 + 2126 = 1.00000 + 2128 = 1.00000 + 2129 = 1.00000 + 2133 = 1.00000 + 2134 = 1.00000 + 2139 = 1.00000 + 2140 = 1.00000 + 2141 = 1.00000 + 2142 = 1.00000 + 2143 = 1.00000 + 2145 = 1.00000 + 2146 = 1.00000 + 2147 = 1.00000 + 2148 = 1.00000 + 2150 = 1.00000 + 2154 = 1.00000 + 2156 = 1.00000 + 2157 = 1.00000 + 2158 = 1.00000 + 2163 = 1.00000 + 2164 = 1.00000 + 2165 = 1.00000 + 2166 = 1.00000 + 2167 = 1.00000 + 2168 = 1.00000 + 2169 = 1.00000 + 2170 = 1.00000 + 2171 = 1.00000 + 2172 = 1.00000 + 2173 = 1.00000 + 2174 = 1.00000 + 2176 = 1.00000 + 2177 = 1.00000 + 2178 = 1.00000 + 2180 = 1.00000 + 2181 = 1.00000 + 2182 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=0 + 1 = 1.00000 + 2 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 26 = 1.00000 + 28 = 1.00000 + 27 = 1.00000 + 29 = 1.00000 + 50 = 1.00000 + 52 = 1.00000 + 51 = 1.00000 + 53 = 1.00000 + 74 = 1.00000 + 76 = 1.00000 + 75 = 1.00000 + 77 = 1.00000 + 86 = 1.00000 + 88 = 1.00000 + 87 = 1.00000 + 89 = 1.00000 + 100 = 1.00000 + 104 = 1.00000 + 101 = 1.00000 + 105 = 1.00000 + 102 = 1.00000 + 106 = 1.00000 + 103 = 1.00000 + 107 = 1.00000 + 337 = 1.00000 + 338 = 1.00000 + 343 = 1.00000 + 344 = 1.00000 + 350 = 1.00000 + 352 = 1.00000 + 351 = 1.00000 + 353 = 1.00000 + 368 = 1.00000 + 370 = 1.00000 + 369 = 1.00000 + 371 = 1.00000 + 386 = 1.00000 + 388 = 1.00000 + 387 = 1.00000 + 389 = 1.00000 + 400 = 1.00000 + 404 = 1.00000 + 401 = 1.00000 + 405 = 1.00000 + 402 = 1.00000 + 406 = 1.00000 + 403 = 1.00000 + 407 = 1.00000 + 589 = 1.00000 + 590 = 1.00000 + 595 = 1.00000 + 596 = 1.00000 + 602 = 1.00000 + 604 = 1.00000 + 603 = 1.00000 + 605 = 1.00000 + 626 = 1.00000 + 628 = 1.00000 + 627 = 1.00000 + 629 = 1.00000 + 638 = 1.00000 + 640 = 1.00000 + 639 = 1.00000 + 641 = 1.00000 + 652 = 1.00000 + 656 = 1.00000 + 653 = 1.00000 + 657 = 1.00000 + 654 = 1.00000 + 658 = 1.00000 + 655 = 1.00000 + 659 = 1.00000 + 841 = 1.00000 + 842 = 1.00000 + 848 = 1.00000 + 850 = 1.00000 + 849 = 1.00000 + 851 = 1.00000 + 866 = 1.00000 + 868 = 1.00000 + 867 = 1.00000 + 869 = 1.00000 + 880 = 1.00000 + 884 = 1.00000 + 881 = 1.00000 + 885 = 1.00000 + 882 = 1.00000 + 886 = 1.00000 + 883 = 1.00000 + 887 = 1.00000 + 1912 = 1.00000 + 1913 = 1.00000 + 1918 = 1.00000 + 1919 = 1.00000 + 1925 = 1.00000 + 1927 = 1.00000 + 1926 = 1.00000 + 1928 = 1.00000 + 1943 = 1.00000 + 1945 = 1.00000 + 1944 = 1.00000 + 1946 = 1.00000 + 1961 = 1.00000 + 1963 = 1.00000 + 1962 = 1.00000 + 1964 = 1.00000 + 1975 = 1.00000 + 1979 = 1.00000 + 1976 = 1.00000 + 1980 = 1.00000 + 1977 = 1.00000 + 1981 = 1.00000 + 1978 = 1.00000 + 1982 = 1.00000 + 2164 = 1.00000 + 2165 = 1.00000 + 2170 = 1.00000 + 2171 = 1.00000 + 2177 = 1.00000 + 2179 = 1.00000 + 2178 = 1.00000 + 2180 = 1.00000 + 2195 = 1.00000 + 2197 = 1.00000 + 2196 = 1.00000 + 2198 = 1.00000 + 2213 = 1.00000 + 2215 = 1.00000 + 2214 = 1.00000 + 2216 = 1.00000 + 2227 = 1.00000 + 2231 = 1.00000 + 2228 = 1.00000 + 2232 = 1.00000 + 2229 = 1.00000 + 2233 = 1.00000 + 2230 = 1.00000 + 2234 = 1.00000 + 2416 = 1.00000 + 2417 = 1.00000 + 2423 = 1.00000 + 2425 = 1.00000 + 2424 = 1.00000 + 2426 = 1.00000 + 2441 = 1.00000 + 2443 = 1.00000 + 2442 = 1.00000 + 2444 = 1.00000 + 2455 = 1.00000 + 2459 = 1.00000 + 2456 = 1.00000 + 2460 = 1.00000 + 2457 = 1.00000 + 2461 = 1.00000 + 2458 = 1.00000 + 2462 = 1.00000 + 2605 = 1.00000 + 2606 = 1.00000 + 2612 = 1.00000 + 2614 = 1.00000 + 2613 = 1.00000 + 2615 = 1.00000 + 2630 = 1.00000 + 2632 = 1.00000 + 2631 = 1.00000 + 2633 = 1.00000 + 2644 = 1.00000 + 2648 = 1.00000 + 2645 = 1.00000 + 2649 = 1.00000 + 2646 = 1.00000 + 2650 = 1.00000 + 2647 = 1.00000 + 2651 = 1.00000 + 3550 = 1.00000 + 3551 = 1.00000 + 3556 = 1.00000 + 3557 = 1.00000 + 3563 = 1.00000 + 3565 = 1.00000 + 3564 = 1.00000 + 3566 = 1.00000 + 3587 = 1.00000 + 3589 = 1.00000 + 3588 = 1.00000 + 3590 = 1.00000 + 3599 = 1.00000 + 3601 = 1.00000 + 3600 = 1.00000 + 3602 = 1.00000 + 3613 = 1.00000 + 3617 = 1.00000 + 3614 = 1.00000 + 3618 = 1.00000 + 3615 = 1.00000 + 3619 = 1.00000 + 3616 = 1.00000 + 3620 = 1.00000 + 3802 = 1.00000 + 3803 = 1.00000 + 3809 = 1.00000 + 3811 = 1.00000 + 3810 = 1.00000 + 3812 = 1.00000 + 3827 = 1.00000 + 3829 = 1.00000 + 3828 = 1.00000 + 3830 = 1.00000 + 3841 = 1.00000 + 3845 = 1.00000 + 3842 = 1.00000 + 3846 = 1.00000 + 3843 = 1.00000 + 3847 = 1.00000 + 3844 = 1.00000 + 3848 = 1.00000 + 3991 = 1.00000 + 3992 = 1.00000 + 3997 = 1.00000 + 3998 = 1.00000 + 4004 = 1.00000 + 4006 = 1.00000 + 4005 = 1.00000 + 4007 = 1.00000 + 4028 = 1.00000 + 4030 = 1.00000 + 4029 = 1.00000 + 4031 = 1.00000 + 4040 = 1.00000 + 4042 = 1.00000 + 4041 = 1.00000 + 4043 = 1.00000 + 4054 = 1.00000 + 4058 = 1.00000 + 4055 = 1.00000 + 4059 = 1.00000 + 4056 = 1.00000 + 4060 = 1.00000 + 4057 = 1.00000 + 4061 = 1.00000 + 4243 = 1.00000 + 4244 = 1.00000 + 4250 = 1.00000 + 4252 = 1.00000 + 4251 = 1.00000 + 4253 = 1.00000 + 4268 = 1.00000 + 4270 = 1.00000 + 4269 = 1.00000 + 4271 = 1.00000 + 4282 = 1.00000 + 4286 = 1.00000 + 4283 = 1.00000 + 4287 = 1.00000 + 4284 = 1.00000 + 4288 = 1.00000 + 4285 = 1.00000 + 4289 = 1.00000 + 5188 = 1.00000 + 5189 = 1.00000 + 5195 = 1.00000 + 5197 = 1.00000 + 5196 = 1.00000 + 5198 = 1.00000 + 5213 = 1.00000 + 5215 = 1.00000 + 5214 = 1.00000 + 5216 = 1.00000 + 5227 = 1.00000 + 5231 = 1.00000 + 5228 = 1.00000 + 5232 = 1.00000 + 5229 = 1.00000 + 5233 = 1.00000 + 5230 = 1.00000 + 5234 = 1.00000 + 5377 = 1.00000 + 5378 = 1.00000 + 5384 = 1.00000 + 5386 = 1.00000 + 5385 = 1.00000 + 5387 = 1.00000 + 5402 = 1.00000 + 5404 = 1.00000 + 5403 = 1.00000 + 5405 = 1.00000 + 5416 = 1.00000 + 5420 = 1.00000 + 5417 = 1.00000 + 5421 = 1.00000 + 5418 = 1.00000 + 5422 = 1.00000 + 5419 = 1.00000 + 5423 = 1.00000 + 5566 = 1.00000 + 5567 = 1.00000 + 5573 = 1.00000 + 5575 = 1.00000 + 5574 = 1.00000 + 5576 = 1.00000 + 5591 = 1.00000 + 5593 = 1.00000 + 5592 = 1.00000 + 5594 = 1.00000 + 5605 = 1.00000 + 5609 = 1.00000 + 5606 = 1.00000 + 5610 = 1.00000 + 5607 = 1.00000 + 5611 = 1.00000 + 5608 = 1.00000 + 5612 = 1.00000 + 5755 = 1.00000 + 5756 = 1.00000 + 5762 = 1.00000 + 5764 = 1.00000 + 5763 = 1.00000 + 5765 = 1.00000 + 5780 = 1.00000 + 5782 = 1.00000 + 5781 = 1.00000 + 5783 = 1.00000 + 5794 = 1.00000 + 5798 = 1.00000 + 5795 = 1.00000 + 5799 = 1.00000 + 5796 = 1.00000 + 5800 = 1.00000 + 5797 = 1.00000 + 5801 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=1 + 1 = 1.00000 + 2 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 26 = 1.00000 + 28 = 1.00000 + 27 = 1.00000 + 29 = 1.00000 + 50 = 1.00000 + 52 = 1.00000 + 51 = 1.00000 + 53 = 1.00000 + 74 = 1.00000 + 76 = 1.00000 + 75 = 1.00000 + 77 = 1.00000 + 86 = 1.00000 + 88 = 1.00000 + 87 = 1.00000 + 89 = 1.00000 + 100 = 1.00000 + 104 = 1.00000 + 101 = 1.00000 + 105 = 1.00000 + 102 = 1.00000 + 106 = 1.00000 + 103 = 1.00000 + 107 = 1.00000 + 337 = 1.00000 + 338 = 1.00000 + 343 = 1.00000 + 344 = 1.00000 + 350 = 1.00000 + 352 = 1.00000 + 351 = 1.00000 + 353 = 1.00000 + 368 = 1.00000 + 370 = 1.00000 + 369 = 1.00000 + 371 = 1.00000 + 386 = 1.00000 + 388 = 1.00000 + 387 = 1.00000 + 389 = 1.00000 + 400 = 1.00000 + 404 = 1.00000 + 401 = 1.00000 + 405 = 1.00000 + 402 = 1.00000 + 406 = 1.00000 + 403 = 1.00000 + 407 = 1.00000 + 589 = 1.00000 + 590 = 1.00000 + 595 = 1.00000 + 596 = 1.00000 + 602 = 1.00000 + 604 = 1.00000 + 603 = 1.00000 + 605 = 1.00000 + 626 = 1.00000 + 628 = 1.00000 + 627 = 1.00000 + 629 = 1.00000 + 638 = 1.00000 + 640 = 1.00000 + 639 = 1.00000 + 641 = 1.00000 + 652 = 1.00000 + 656 = 1.00000 + 653 = 1.00000 + 657 = 1.00000 + 654 = 1.00000 + 658 = 1.00000 + 655 = 1.00000 + 659 = 1.00000 + 841 = 1.00000 + 842 = 1.00000 + 848 = 1.00000 + 850 = 1.00000 + 849 = 1.00000 + 851 = 1.00000 + 866 = 1.00000 + 868 = 1.00000 + 867 = 1.00000 + 869 = 1.00000 + 880 = 1.00000 + 884 = 1.00000 + 881 = 1.00000 + 885 = 1.00000 + 882 = 1.00000 + 886 = 1.00000 + 883 = 1.00000 + 887 = 1.00000 + 1174 = 1.00000 + 1175 = 1.00000 + 1177 = 1.00000 + 1178 = 1.00000 + 1180 = 1.00000 + 1181 = 1.00000 + 1183 = 1.00000 + 1184 = 1.00000 + 1187 = 1.00000 + 1189 = 1.00000 + 1188 = 1.00000 + 1190 = 1.00000 + 1205 = 1.00000 + 1207 = 1.00000 + 1206 = 1.00000 + 1208 = 1.00000 + 1223 = 1.00000 + 1225 = 1.00000 + 1224 = 1.00000 + 1226 = 1.00000 + 1229 = 1.00000 + 1231 = 1.00000 + 1230 = 1.00000 + 1232 = 1.00000 + 1237 = 1.00000 + 1241 = 1.00000 + 1238 = 1.00000 + 1242 = 1.00000 + 1239 = 1.00000 + 1243 = 1.00000 + 1240 = 1.00000 + 1244 = 1.00000 + 1426 = 1.00000 + 1427 = 1.00000 + 1429 = 1.00000 + 1430 = 1.00000 + 1433 = 1.00000 + 1435 = 1.00000 + 1434 = 1.00000 + 1436 = 1.00000 + 1445 = 1.00000 + 1447 = 1.00000 + 1446 = 1.00000 + 1448 = 1.00000 + 1457 = 1.00000 + 1459 = 1.00000 + 1458 = 1.00000 + 1460 = 1.00000 + 1465 = 1.00000 + 1469 = 1.00000 + 1466 = 1.00000 + 1470 = 1.00000 + 1467 = 1.00000 + 1471 = 1.00000 + 1468 = 1.00000 + 1472 = 1.00000 + 1642 = 1.00000 + 1643 = 1.00000 + 1645 = 1.00000 + 1646 = 1.00000 + 1649 = 1.00000 + 1651 = 1.00000 + 1650 = 1.00000 + 1652 = 1.00000 + 1667 = 1.00000 + 1669 = 1.00000 + 1668 = 1.00000 + 1670 = 1.00000 + 1673 = 1.00000 + 1675 = 1.00000 + 1674 = 1.00000 + 1676 = 1.00000 + 1681 = 1.00000 + 1685 = 1.00000 + 1682 = 1.00000 + 1686 = 1.00000 + 1683 = 1.00000 + 1687 = 1.00000 + 1684 = 1.00000 + 1688 = 1.00000 + 1831 = 1.00000 + 1832 = 1.00000 + 1835 = 1.00000 + 1837 = 1.00000 + 1836 = 1.00000 + 1838 = 1.00000 + 1847 = 1.00000 + 1849 = 1.00000 + 1848 = 1.00000 + 1850 = 1.00000 + 1855 = 1.00000 + 1859 = 1.00000 + 1856 = 1.00000 + 1860 = 1.00000 + 1857 = 1.00000 + 1861 = 1.00000 + 1858 = 1.00000 + 1862 = 1.00000 + 1912 = 1.00000 + 1913 = 1.00000 + 1918 = 1.00000 + 1919 = 1.00000 + 1925 = 1.00000 + 1927 = 1.00000 + 1926 = 1.00000 + 1928 = 1.00000 + 1943 = 1.00000 + 1945 = 1.00000 + 1944 = 1.00000 + 1946 = 1.00000 + 1961 = 1.00000 + 1963 = 1.00000 + 1962 = 1.00000 + 1964 = 1.00000 + 1975 = 1.00000 + 1979 = 1.00000 + 1976 = 1.00000 + 1980 = 1.00000 + 1977 = 1.00000 + 1981 = 1.00000 + 1978 = 1.00000 + 1982 = 1.00000 + 2164 = 1.00000 + 2165 = 1.00000 + 2170 = 1.00000 + 2171 = 1.00000 + 2177 = 1.00000 + 2179 = 1.00000 + 2178 = 1.00000 + 2180 = 1.00000 + 2195 = 1.00000 + 2197 = 1.00000 + 2196 = 1.00000 + 2198 = 1.00000 + 2213 = 1.00000 + 2215 = 1.00000 + 2214 = 1.00000 + 2216 = 1.00000 + 2227 = 1.00000 + 2231 = 1.00000 + 2228 = 1.00000 + 2232 = 1.00000 + 2229 = 1.00000 + 2233 = 1.00000 + 2230 = 1.00000 + 2234 = 1.00000 + 2416 = 1.00000 + 2417 = 1.00000 + 2423 = 1.00000 + 2425 = 1.00000 + 2424 = 1.00000 + 2426 = 1.00000 + 2441 = 1.00000 + 2443 = 1.00000 + 2442 = 1.00000 + 2444 = 1.00000 + 2455 = 1.00000 + 2459 = 1.00000 + 2456 = 1.00000 + 2460 = 1.00000 + 2457 = 1.00000 + 2461 = 1.00000 + 2458 = 1.00000 + 2462 = 1.00000 + 2605 = 1.00000 + 2606 = 1.00000 + 2612 = 1.00000 + 2614 = 1.00000 + 2613 = 1.00000 + 2615 = 1.00000 + 2630 = 1.00000 + 2632 = 1.00000 + 2631 = 1.00000 + 2633 = 1.00000 + 2644 = 1.00000 + 2648 = 1.00000 + 2645 = 1.00000 + 2649 = 1.00000 + 2646 = 1.00000 + 2650 = 1.00000 + 2647 = 1.00000 + 2651 = 1.00000 + 2902 = 1.00000 + 2903 = 1.00000 + 2905 = 1.00000 + 2906 = 1.00000 + 2909 = 1.00000 + 2911 = 1.00000 + 2910 = 1.00000 + 2912 = 1.00000 + 2921 = 1.00000 + 2923 = 1.00000 + 2922 = 1.00000 + 2924 = 1.00000 + 2933 = 1.00000 + 2935 = 1.00000 + 2934 = 1.00000 + 2936 = 1.00000 + 2941 = 1.00000 + 2945 = 1.00000 + 2942 = 1.00000 + 2946 = 1.00000 + 2943 = 1.00000 + 2947 = 1.00000 + 2944 = 1.00000 + 2948 = 1.00000 + 3118 = 1.00000 + 3119 = 1.00000 + 3121 = 1.00000 + 3122 = 1.00000 + 3125 = 1.00000 + 3127 = 1.00000 + 3126 = 1.00000 + 3128 = 1.00000 + 3137 = 1.00000 + 3139 = 1.00000 + 3138 = 1.00000 + 3140 = 1.00000 + 3149 = 1.00000 + 3151 = 1.00000 + 3150 = 1.00000 + 3152 = 1.00000 + 3157 = 1.00000 + 3161 = 1.00000 + 3158 = 1.00000 + 3162 = 1.00000 + 3159 = 1.00000 + 3163 = 1.00000 + 3160 = 1.00000 + 3164 = 1.00000 + 3307 = 1.00000 + 3308 = 1.00000 + 3311 = 1.00000 + 3313 = 1.00000 + 3312 = 1.00000 + 3314 = 1.00000 + 3323 = 1.00000 + 3325 = 1.00000 + 3324 = 1.00000 + 3326 = 1.00000 + 3331 = 1.00000 + 3335 = 1.00000 + 3332 = 1.00000 + 3336 = 1.00000 + 3333 = 1.00000 + 3337 = 1.00000 + 3334 = 1.00000 + 3338 = 1.00000 + 3469 = 1.00000 + 3470 = 1.00000 + 3473 = 1.00000 + 3475 = 1.00000 + 3474 = 1.00000 + 3476 = 1.00000 + 3485 = 1.00000 + 3487 = 1.00000 + 3486 = 1.00000 + 3488 = 1.00000 + 3493 = 1.00000 + 3497 = 1.00000 + 3494 = 1.00000 + 3498 = 1.00000 + 3495 = 1.00000 + 3499 = 1.00000 + 3496 = 1.00000 + 3500 = 1.00000 + 3550 = 1.00000 + 3551 = 1.00000 + 3556 = 1.00000 + 3557 = 1.00000 + 3563 = 1.00000 + 3565 = 1.00000 + 3564 = 1.00000 + 3566 = 1.00000 + 3587 = 1.00000 + 3589 = 1.00000 + 3588 = 1.00000 + 3590 = 1.00000 + 3599 = 1.00000 + 3601 = 1.00000 + 3600 = 1.00000 + 3602 = 1.00000 + 3613 = 1.00000 + 3617 = 1.00000 + 3614 = 1.00000 + 3618 = 1.00000 + 3615 = 1.00000 + 3619 = 1.00000 + 3616 = 1.00000 + 3620 = 1.00000 + 3802 = 1.00000 + 3803 = 1.00000 + 3809 = 1.00000 + 3811 = 1.00000 + 3810 = 1.00000 + 3812 = 1.00000 + 3827 = 1.00000 + 3829 = 1.00000 + 3828 = 1.00000 + 3830 = 1.00000 + 3841 = 1.00000 + 3845 = 1.00000 + 3842 = 1.00000 + 3846 = 1.00000 + 3843 = 1.00000 + 3847 = 1.00000 + 3844 = 1.00000 + 3848 = 1.00000 + 3991 = 1.00000 + 3992 = 1.00000 + 3997 = 1.00000 + 3998 = 1.00000 + 4004 = 1.00000 + 4006 = 1.00000 + 4005 = 1.00000 + 4007 = 1.00000 + 4028 = 1.00000 + 4030 = 1.00000 + 4029 = 1.00000 + 4031 = 1.00000 + 4040 = 1.00000 + 4042 = 1.00000 + 4041 = 1.00000 + 4043 = 1.00000 + 4054 = 1.00000 + 4058 = 1.00000 + 4055 = 1.00000 + 4059 = 1.00000 + 4056 = 1.00000 + 4060 = 1.00000 + 4057 = 1.00000 + 4061 = 1.00000 + 4243 = 1.00000 + 4244 = 1.00000 + 4250 = 1.00000 + 4252 = 1.00000 + 4251 = 1.00000 + 4253 = 1.00000 + 4268 = 1.00000 + 4270 = 1.00000 + 4269 = 1.00000 + 4271 = 1.00000 + 4282 = 1.00000 + 4286 = 1.00000 + 4283 = 1.00000 + 4287 = 1.00000 + 4284 = 1.00000 + 4288 = 1.00000 + 4285 = 1.00000 + 4289 = 1.00000 + 4540 = 1.00000 + 4541 = 1.00000 + 4543 = 1.00000 + 4544 = 1.00000 + 4547 = 1.00000 + 4549 = 1.00000 + 4548 = 1.00000 + 4550 = 1.00000 + 4565 = 1.00000 + 4567 = 1.00000 + 4566 = 1.00000 + 4568 = 1.00000 + 4571 = 1.00000 + 4573 = 1.00000 + 4572 = 1.00000 + 4574 = 1.00000 + 4579 = 1.00000 + 4583 = 1.00000 + 4580 = 1.00000 + 4584 = 1.00000 + 4581 = 1.00000 + 4585 = 1.00000 + 4582 = 1.00000 + 4586 = 1.00000 + 4729 = 1.00000 + 4730 = 1.00000 + 4733 = 1.00000 + 4735 = 1.00000 + 4734 = 1.00000 + 4736 = 1.00000 + 4745 = 1.00000 + 4747 = 1.00000 + 4746 = 1.00000 + 4748 = 1.00000 + 4753 = 1.00000 + 4757 = 1.00000 + 4754 = 1.00000 + 4758 = 1.00000 + 4755 = 1.00000 + 4759 = 1.00000 + 4756 = 1.00000 + 4760 = 1.00000 + 4918 = 1.00000 + 4919 = 1.00000 + 4921 = 1.00000 + 4922 = 1.00000 + 4925 = 1.00000 + 4927 = 1.00000 + 4926 = 1.00000 + 4928 = 1.00000 + 4943 = 1.00000 + 4945 = 1.00000 + 4944 = 1.00000 + 4946 = 1.00000 + 4949 = 1.00000 + 4951 = 1.00000 + 4950 = 1.00000 + 4952 = 1.00000 + 4957 = 1.00000 + 4961 = 1.00000 + 4958 = 1.00000 + 4962 = 1.00000 + 4959 = 1.00000 + 4963 = 1.00000 + 4960 = 1.00000 + 4964 = 1.00000 + 5107 = 1.00000 + 5108 = 1.00000 + 5111 = 1.00000 + 5113 = 1.00000 + 5112 = 1.00000 + 5114 = 1.00000 + 5123 = 1.00000 + 5125 = 1.00000 + 5124 = 1.00000 + 5126 = 1.00000 + 5131 = 1.00000 + 5135 = 1.00000 + 5132 = 1.00000 + 5136 = 1.00000 + 5133 = 1.00000 + 5137 = 1.00000 + 5134 = 1.00000 + 5138 = 1.00000 + 5188 = 1.00000 + 5189 = 1.00000 + 5195 = 1.00000 + 5197 = 1.00000 + 5196 = 1.00000 + 5198 = 1.00000 + 5213 = 1.00000 + 5215 = 1.00000 + 5214 = 1.00000 + 5216 = 1.00000 + 5227 = 1.00000 + 5231 = 1.00000 + 5228 = 1.00000 + 5232 = 1.00000 + 5229 = 1.00000 + 5233 = 1.00000 + 5230 = 1.00000 + 5234 = 1.00000 + 5377 = 1.00000 + 5378 = 1.00000 + 5384 = 1.00000 + 5386 = 1.00000 + 5385 = 1.00000 + 5387 = 1.00000 + 5402 = 1.00000 + 5404 = 1.00000 + 5403 = 1.00000 + 5405 = 1.00000 + 5416 = 1.00000 + 5420 = 1.00000 + 5417 = 1.00000 + 5421 = 1.00000 + 5418 = 1.00000 + 5422 = 1.00000 + 5419 = 1.00000 + 5423 = 1.00000 + 5566 = 1.00000 + 5567 = 1.00000 + 5573 = 1.00000 + 5575 = 1.00000 + 5574 = 1.00000 + 5576 = 1.00000 + 5591 = 1.00000 + 5593 = 1.00000 + 5592 = 1.00000 + 5594 = 1.00000 + 5605 = 1.00000 + 5609 = 1.00000 + 5606 = 1.00000 + 5610 = 1.00000 + 5607 = 1.00000 + 5611 = 1.00000 + 5608 = 1.00000 + 5612 = 1.00000 + 5755 = 1.00000 + 5756 = 1.00000 + 5762 = 1.00000 + 5764 = 1.00000 + 5763 = 1.00000 + 5765 = 1.00000 + 5780 = 1.00000 + 5782 = 1.00000 + 5781 = 1.00000 + 5783 = 1.00000 + 5794 = 1.00000 + 5798 = 1.00000 + 5795 = 1.00000 + 5799 = 1.00000 + 5796 = 1.00000 + 5800 = 1.00000 + 5797 = 1.00000 + 5801 = 1.00000 + 6025 = 1.00000 + 6026 = 1.00000 + 6029 = 1.00000 + 6031 = 1.00000 + 6030 = 1.00000 + 6032 = 1.00000 + 6041 = 1.00000 + 6043 = 1.00000 + 6042 = 1.00000 + 6044 = 1.00000 + 6049 = 1.00000 + 6053 = 1.00000 + 6050 = 1.00000 + 6054 = 1.00000 + 6051 = 1.00000 + 6055 = 1.00000 + 6052 = 1.00000 + 6056 = 1.00000 + 6187 = 1.00000 + 6188 = 1.00000 + 6191 = 1.00000 + 6193 = 1.00000 + 6192 = 1.00000 + 6194 = 1.00000 + 6203 = 1.00000 + 6205 = 1.00000 + 6204 = 1.00000 + 6206 = 1.00000 + 6211 = 1.00000 + 6215 = 1.00000 + 6212 = 1.00000 + 6216 = 1.00000 + 6213 = 1.00000 + 6217 = 1.00000 + 6214 = 1.00000 + 6218 = 1.00000 + 6349 = 1.00000 + 6350 = 1.00000 + 6353 = 1.00000 + 6355 = 1.00000 + 6354 = 1.00000 + 6356 = 1.00000 + 6365 = 1.00000 + 6367 = 1.00000 + 6366 = 1.00000 + 6368 = 1.00000 + 6373 = 1.00000 + 6377 = 1.00000 + 6374 = 1.00000 + 6378 = 1.00000 + 6375 = 1.00000 + 6379 = 1.00000 + 6376 = 1.00000 + 6380 = 1.00000 + 6511 = 1.00000 + 6512 = 1.00000 + 6515 = 1.00000 + 6517 = 1.00000 + 6516 = 1.00000 + 6518 = 1.00000 + 6527 = 1.00000 + 6529 = 1.00000 + 6528 = 1.00000 + 6530 = 1.00000 + 6535 = 1.00000 + 6539 = 1.00000 + 6536 = 1.00000 + 6540 = 1.00000 + 6537 = 1.00000 + 6541 = 1.00000 + 6538 = 1.00000 + 6542 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=2 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 3 = 1.00000 + 5 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 15 = 1.00000 + 17 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 26 = 1.00000 + 28 = 1.00000 + 27 = 1.00000 + 29 = 1.00000 + 36 = 1.00000 + 40 = 1.00000 + 37 = 1.00000 + 41 = 1.00000 + 50 = 1.00000 + 52 = 1.00000 + 51 = 1.00000 + 53 = 1.00000 + 60 = 1.00000 + 64 = 1.00000 + 61 = 1.00000 + 65 = 1.00000 + 72 = 1.00000 + 74 = 1.00000 + 76 = 1.00000 + 73 = 1.00000 + 75 = 1.00000 + 77 = 1.00000 + 78 = 1.00000 + 82 = 1.00000 + 79 = 1.00000 + 83 = 1.00000 + 86 = 1.00000 + 88 = 1.00000 + 87 = 1.00000 + 89 = 1.00000 + 100 = 1.00000 + 104 = 1.00000 + 101 = 1.00000 + 105 = 1.00000 + 102 = 1.00000 + 106 = 1.00000 + 103 = 1.00000 + 107 = 1.00000 + 120 = 1.00000 + 128 = 1.00000 + 121 = 1.00000 + 129 = 1.00000 + 122 = 1.00000 + 130 = 1.00000 + 123 = 1.00000 + 131 = 1.00000 + 192 = 1.00000 + 194 = 1.00000 + 198 = 1.00000 + 200 = 1.00000 + 210 = 1.00000 + 214 = 1.00000 + 211 = 1.00000 + 215 = 1.00000 + 228 = 1.00000 + 232 = 1.00000 + 229 = 1.00000 + 233 = 1.00000 + 240 = 1.00000 + 244 = 1.00000 + 241 = 1.00000 + 245 = 1.00000 + 264 = 1.00000 + 272 = 1.00000 + 265 = 1.00000 + 273 = 1.00000 + 266 = 1.00000 + 274 = 1.00000 + 267 = 1.00000 + 275 = 1.00000 + 337 = 1.00000 + 338 = 1.00000 + 343 = 1.00000 + 344 = 1.00000 + 350 = 1.00000 + 352 = 1.00000 + 351 = 1.00000 + 353 = 1.00000 + 368 = 1.00000 + 370 = 1.00000 + 369 = 1.00000 + 371 = 1.00000 + 386 = 1.00000 + 388 = 1.00000 + 387 = 1.00000 + 389 = 1.00000 + 400 = 1.00000 + 404 = 1.00000 + 401 = 1.00000 + 405 = 1.00000 + 402 = 1.00000 + 406 = 1.00000 + 403 = 1.00000 + 407 = 1.00000 + 588 = 1.00000 + 589 = 1.00000 + 590 = 1.00000 + 591 = 1.00000 + 593 = 1.00000 + 595 = 1.00000 + 596 = 1.00000 + 602 = 1.00000 + 604 = 1.00000 + 603 = 1.00000 + 605 = 1.00000 + 612 = 1.00000 + 616 = 1.00000 + 613 = 1.00000 + 617 = 1.00000 + 624 = 1.00000 + 626 = 1.00000 + 628 = 1.00000 + 625 = 1.00000 + 627 = 1.00000 + 629 = 1.00000 + 630 = 1.00000 + 634 = 1.00000 + 631 = 1.00000 + 635 = 1.00000 + 638 = 1.00000 + 640 = 1.00000 + 639 = 1.00000 + 641 = 1.00000 + 652 = 1.00000 + 656 = 1.00000 + 653 = 1.00000 + 657 = 1.00000 + 654 = 1.00000 + 658 = 1.00000 + 655 = 1.00000 + 659 = 1.00000 + 672 = 1.00000 + 680 = 1.00000 + 673 = 1.00000 + 681 = 1.00000 + 674 = 1.00000 + 682 = 1.00000 + 675 = 1.00000 + 683 = 1.00000 + 732 = 1.00000 + 734 = 1.00000 + 744 = 1.00000 + 748 = 1.00000 + 745 = 1.00000 + 749 = 1.00000 + 756 = 1.00000 + 760 = 1.00000 + 757 = 1.00000 + 761 = 1.00000 + 780 = 1.00000 + 788 = 1.00000 + 781 = 1.00000 + 789 = 1.00000 + 782 = 1.00000 + 790 = 1.00000 + 783 = 1.00000 + 791 = 1.00000 + 841 = 1.00000 + 842 = 1.00000 + 848 = 1.00000 + 850 = 1.00000 + 849 = 1.00000 + 851 = 1.00000 + 866 = 1.00000 + 868 = 1.00000 + 867 = 1.00000 + 869 = 1.00000 + 880 = 1.00000 + 884 = 1.00000 + 881 = 1.00000 + 885 = 1.00000 + 882 = 1.00000 + 886 = 1.00000 + 883 = 1.00000 + 887 = 1.00000 + 1029 = 1.00000 + 1031 = 1.00000 + 1035 = 1.00000 + 1037 = 1.00000 + 1047 = 1.00000 + 1051 = 1.00000 + 1048 = 1.00000 + 1052 = 1.00000 + 1065 = 1.00000 + 1069 = 1.00000 + 1066 = 1.00000 + 1070 = 1.00000 + 1077 = 1.00000 + 1081 = 1.00000 + 1078 = 1.00000 + 1082 = 1.00000 + 1101 = 1.00000 + 1109 = 1.00000 + 1102 = 1.00000 + 1110 = 1.00000 + 1103 = 1.00000 + 1111 = 1.00000 + 1104 = 1.00000 + 1112 = 1.00000 + 1173 = 1.00000 + 1174 = 1.00000 + 1175 = 1.00000 + 1177 = 1.00000 + 1178 = 1.00000 + 1179 = 1.00000 + 1180 = 1.00000 + 1181 = 1.00000 + 1183 = 1.00000 + 1184 = 1.00000 + 1187 = 1.00000 + 1189 = 1.00000 + 1188 = 1.00000 + 1190 = 1.00000 + 1191 = 1.00000 + 1195 = 1.00000 + 1192 = 1.00000 + 1196 = 1.00000 + 1205 = 1.00000 + 1207 = 1.00000 + 1206 = 1.00000 + 1208 = 1.00000 + 1209 = 1.00000 + 1213 = 1.00000 + 1210 = 1.00000 + 1214 = 1.00000 + 1221 = 1.00000 + 1223 = 1.00000 + 1225 = 1.00000 + 1222 = 1.00000 + 1224 = 1.00000 + 1226 = 1.00000 + 1229 = 1.00000 + 1231 = 1.00000 + 1230 = 1.00000 + 1232 = 1.00000 + 1237 = 1.00000 + 1241 = 1.00000 + 1238 = 1.00000 + 1242 = 1.00000 + 1239 = 1.00000 + 1243 = 1.00000 + 1240 = 1.00000 + 1244 = 1.00000 + 1245 = 1.00000 + 1253 = 1.00000 + 1246 = 1.00000 + 1254 = 1.00000 + 1247 = 1.00000 + 1255 = 1.00000 + 1248 = 1.00000 + 1256 = 1.00000 + 1426 = 1.00000 + 1427 = 1.00000 + 1429 = 1.00000 + 1430 = 1.00000 + 1433 = 1.00000 + 1435 = 1.00000 + 1434 = 1.00000 + 1436 = 1.00000 + 1445 = 1.00000 + 1447 = 1.00000 + 1446 = 1.00000 + 1448 = 1.00000 + 1457 = 1.00000 + 1459 = 1.00000 + 1458 = 1.00000 + 1460 = 1.00000 + 1465 = 1.00000 + 1469 = 1.00000 + 1466 = 1.00000 + 1470 = 1.00000 + 1467 = 1.00000 + 1471 = 1.00000 + 1468 = 1.00000 + 1472 = 1.00000 + 1533 = 1.00000 + 1535 = 1.00000 + 1545 = 1.00000 + 1549 = 1.00000 + 1546 = 1.00000 + 1550 = 1.00000 + 1557 = 1.00000 + 1561 = 1.00000 + 1558 = 1.00000 + 1562 = 1.00000 + 1581 = 1.00000 + 1589 = 1.00000 + 1582 = 1.00000 + 1590 = 1.00000 + 1583 = 1.00000 + 1591 = 1.00000 + 1584 = 1.00000 + 1592 = 1.00000 + 1641 = 1.00000 + 1642 = 1.00000 + 1643 = 1.00000 + 1645 = 1.00000 + 1646 = 1.00000 + 1649 = 1.00000 + 1651 = 1.00000 + 1650 = 1.00000 + 1652 = 1.00000 + 1653 = 1.00000 + 1657 = 1.00000 + 1654 = 1.00000 + 1658 = 1.00000 + 1665 = 1.00000 + 1667 = 1.00000 + 1669 = 1.00000 + 1666 = 1.00000 + 1668 = 1.00000 + 1670 = 1.00000 + 1673 = 1.00000 + 1675 = 1.00000 + 1674 = 1.00000 + 1676 = 1.00000 + 1681 = 1.00000 + 1685 = 1.00000 + 1682 = 1.00000 + 1686 = 1.00000 + 1683 = 1.00000 + 1687 = 1.00000 + 1684 = 1.00000 + 1688 = 1.00000 + 1689 = 1.00000 + 1697 = 1.00000 + 1690 = 1.00000 + 1698 = 1.00000 + 1691 = 1.00000 + 1699 = 1.00000 + 1692 = 1.00000 + 1700 = 1.00000 + 1831 = 1.00000 + 1832 = 1.00000 + 1835 = 1.00000 + 1837 = 1.00000 + 1836 = 1.00000 + 1838 = 1.00000 + 1847 = 1.00000 + 1849 = 1.00000 + 1848 = 1.00000 + 1850 = 1.00000 + 1855 = 1.00000 + 1859 = 1.00000 + 1856 = 1.00000 + 1860 = 1.00000 + 1857 = 1.00000 + 1861 = 1.00000 + 1858 = 1.00000 + 1862 = 1.00000 + 1912 = 1.00000 + 1913 = 1.00000 + 1918 = 1.00000 + 1919 = 1.00000 + 1925 = 1.00000 + 1927 = 1.00000 + 1926 = 1.00000 + 1928 = 1.00000 + 1943 = 1.00000 + 1945 = 1.00000 + 1944 = 1.00000 + 1946 = 1.00000 + 1961 = 1.00000 + 1963 = 1.00000 + 1962 = 1.00000 + 1964 = 1.00000 + 1975 = 1.00000 + 1979 = 1.00000 + 1976 = 1.00000 + 1980 = 1.00000 + 1977 = 1.00000 + 1981 = 1.00000 + 1978 = 1.00000 + 1982 = 1.00000 + 2164 = 1.00000 + 2165 = 1.00000 + 2170 = 1.00000 + 2171 = 1.00000 + 2177 = 1.00000 + 2179 = 1.00000 + 2178 = 1.00000 + 2180 = 1.00000 + 2195 = 1.00000 + 2197 = 1.00000 + 2196 = 1.00000 + 2198 = 1.00000 + 2213 = 1.00000 + 2215 = 1.00000 + 2214 = 1.00000 + 2216 = 1.00000 + 2227 = 1.00000 + 2231 = 1.00000 + 2228 = 1.00000 + 2232 = 1.00000 + 2229 = 1.00000 + 2233 = 1.00000 + 2230 = 1.00000 + 2234 = 1.00000 + 2416 = 1.00000 + 2417 = 1.00000 + 2423 = 1.00000 + 2425 = 1.00000 + 2424 = 1.00000 + 2426 = 1.00000 + 2441 = 1.00000 + 2443 = 1.00000 + 2442 = 1.00000 + 2444 = 1.00000 + 2455 = 1.00000 + 2459 = 1.00000 + 2456 = 1.00000 + 2460 = 1.00000 + 2457 = 1.00000 + 2461 = 1.00000 + 2458 = 1.00000 + 2462 = 1.00000 + 2605 = 1.00000 + 2606 = 1.00000 + 2612 = 1.00000 + 2614 = 1.00000 + 2613 = 1.00000 + 2615 = 1.00000 + 2630 = 1.00000 + 2632 = 1.00000 + 2631 = 1.00000 + 2633 = 1.00000 + 2644 = 1.00000 + 2648 = 1.00000 + 2645 = 1.00000 + 2649 = 1.00000 + 2646 = 1.00000 + 2650 = 1.00000 + 2647 = 1.00000 + 2651 = 1.00000 + 2902 = 1.00000 + 2903 = 1.00000 + 2905 = 1.00000 + 2906 = 1.00000 + 2909 = 1.00000 + 2911 = 1.00000 + 2910 = 1.00000 + 2912 = 1.00000 + 2921 = 1.00000 + 2923 = 1.00000 + 2922 = 1.00000 + 2924 = 1.00000 + 2933 = 1.00000 + 2935 = 1.00000 + 2934 = 1.00000 + 2936 = 1.00000 + 2941 = 1.00000 + 2945 = 1.00000 + 2942 = 1.00000 + 2946 = 1.00000 + 2943 = 1.00000 + 2947 = 1.00000 + 2944 = 1.00000 + 2948 = 1.00000 + 3118 = 1.00000 + 3119 = 1.00000 + 3121 = 1.00000 + 3122 = 1.00000 + 3125 = 1.00000 + 3127 = 1.00000 + 3126 = 1.00000 + 3128 = 1.00000 + 3137 = 1.00000 + 3139 = 1.00000 + 3138 = 1.00000 + 3140 = 1.00000 + 3149 = 1.00000 + 3151 = 1.00000 + 3150 = 1.00000 + 3152 = 1.00000 + 3157 = 1.00000 + 3161 = 1.00000 + 3158 = 1.00000 + 3162 = 1.00000 + 3159 = 1.00000 + 3163 = 1.00000 + 3160 = 1.00000 + 3164 = 1.00000 + 3307 = 1.00000 + 3308 = 1.00000 + 3311 = 1.00000 + 3313 = 1.00000 + 3312 = 1.00000 + 3314 = 1.00000 + 3323 = 1.00000 + 3325 = 1.00000 + 3324 = 1.00000 + 3326 = 1.00000 + 3331 = 1.00000 + 3335 = 1.00000 + 3332 = 1.00000 + 3336 = 1.00000 + 3333 = 1.00000 + 3337 = 1.00000 + 3334 = 1.00000 + 3338 = 1.00000 + 3469 = 1.00000 + 3470 = 1.00000 + 3473 = 1.00000 + 3475 = 1.00000 + 3474 = 1.00000 + 3476 = 1.00000 + 3485 = 1.00000 + 3487 = 1.00000 + 3486 = 1.00000 + 3488 = 1.00000 + 3493 = 1.00000 + 3497 = 1.00000 + 3494 = 1.00000 + 3498 = 1.00000 + 3495 = 1.00000 + 3499 = 1.00000 + 3496 = 1.00000 + 3500 = 1.00000 + 3549 = 1.00000 + 3550 = 1.00000 + 3551 = 1.00000 + 3552 = 1.00000 + 3554 = 1.00000 + 3556 = 1.00000 + 3557 = 1.00000 + 3563 = 1.00000 + 3565 = 1.00000 + 3564 = 1.00000 + 3566 = 1.00000 + 3573 = 1.00000 + 3577 = 1.00000 + 3574 = 1.00000 + 3578 = 1.00000 + 3585 = 1.00000 + 3587 = 1.00000 + 3589 = 1.00000 + 3586 = 1.00000 + 3588 = 1.00000 + 3590 = 1.00000 + 3591 = 1.00000 + 3595 = 1.00000 + 3592 = 1.00000 + 3596 = 1.00000 + 3599 = 1.00000 + 3601 = 1.00000 + 3600 = 1.00000 + 3602 = 1.00000 + 3613 = 1.00000 + 3617 = 1.00000 + 3614 = 1.00000 + 3618 = 1.00000 + 3615 = 1.00000 + 3619 = 1.00000 + 3616 = 1.00000 + 3620 = 1.00000 + 3633 = 1.00000 + 3641 = 1.00000 + 3634 = 1.00000 + 3642 = 1.00000 + 3635 = 1.00000 + 3643 = 1.00000 + 3636 = 1.00000 + 3644 = 1.00000 + 3693 = 1.00000 + 3695 = 1.00000 + 3705 = 1.00000 + 3709 = 1.00000 + 3706 = 1.00000 + 3710 = 1.00000 + 3717 = 1.00000 + 3721 = 1.00000 + 3718 = 1.00000 + 3722 = 1.00000 + 3741 = 1.00000 + 3749 = 1.00000 + 3742 = 1.00000 + 3750 = 1.00000 + 3743 = 1.00000 + 3751 = 1.00000 + 3744 = 1.00000 + 3752 = 1.00000 + 3802 = 1.00000 + 3803 = 1.00000 + 3809 = 1.00000 + 3811 = 1.00000 + 3810 = 1.00000 + 3812 = 1.00000 + 3827 = 1.00000 + 3829 = 1.00000 + 3828 = 1.00000 + 3830 = 1.00000 + 3841 = 1.00000 + 3845 = 1.00000 + 3842 = 1.00000 + 3846 = 1.00000 + 3843 = 1.00000 + 3847 = 1.00000 + 3844 = 1.00000 + 3848 = 1.00000 + 3990 = 1.00000 + 3991 = 1.00000 + 3992 = 1.00000 + 3993 = 1.00000 + 3995 = 1.00000 + 3997 = 1.00000 + 3998 = 1.00000 + 4004 = 1.00000 + 4006 = 1.00000 + 4005 = 1.00000 + 4007 = 1.00000 + 4014 = 1.00000 + 4018 = 1.00000 + 4015 = 1.00000 + 4019 = 1.00000 + 4026 = 1.00000 + 4028 = 1.00000 + 4030 = 1.00000 + 4027 = 1.00000 + 4029 = 1.00000 + 4031 = 1.00000 + 4032 = 1.00000 + 4036 = 1.00000 + 4033 = 1.00000 + 4037 = 1.00000 + 4040 = 1.00000 + 4042 = 1.00000 + 4041 = 1.00000 + 4043 = 1.00000 + 4054 = 1.00000 + 4058 = 1.00000 + 4055 = 1.00000 + 4059 = 1.00000 + 4056 = 1.00000 + 4060 = 1.00000 + 4057 = 1.00000 + 4061 = 1.00000 + 4074 = 1.00000 + 4082 = 1.00000 + 4075 = 1.00000 + 4083 = 1.00000 + 4076 = 1.00000 + 4084 = 1.00000 + 4077 = 1.00000 + 4085 = 1.00000 + 4134 = 1.00000 + 4136 = 1.00000 + 4146 = 1.00000 + 4150 = 1.00000 + 4147 = 1.00000 + 4151 = 1.00000 + 4158 = 1.00000 + 4162 = 1.00000 + 4159 = 1.00000 + 4163 = 1.00000 + 4182 = 1.00000 + 4190 = 1.00000 + 4183 = 1.00000 + 4191 = 1.00000 + 4184 = 1.00000 + 4192 = 1.00000 + 4185 = 1.00000 + 4193 = 1.00000 + 4243 = 1.00000 + 4244 = 1.00000 + 4250 = 1.00000 + 4252 = 1.00000 + 4251 = 1.00000 + 4253 = 1.00000 + 4268 = 1.00000 + 4270 = 1.00000 + 4269 = 1.00000 + 4271 = 1.00000 + 4282 = 1.00000 + 4286 = 1.00000 + 4283 = 1.00000 + 4287 = 1.00000 + 4284 = 1.00000 + 4288 = 1.00000 + 4285 = 1.00000 + 4289 = 1.00000 + 4431 = 1.00000 + 4433 = 1.00000 + 4443 = 1.00000 + 4447 = 1.00000 + 4444 = 1.00000 + 4448 = 1.00000 + 4455 = 1.00000 + 4459 = 1.00000 + 4456 = 1.00000 + 4460 = 1.00000 + 4479 = 1.00000 + 4487 = 1.00000 + 4480 = 1.00000 + 4488 = 1.00000 + 4481 = 1.00000 + 4489 = 1.00000 + 4482 = 1.00000 + 4490 = 1.00000 + 4539 = 1.00000 + 4540 = 1.00000 + 4541 = 1.00000 + 4543 = 1.00000 + 4544 = 1.00000 + 4547 = 1.00000 + 4549 = 1.00000 + 4548 = 1.00000 + 4550 = 1.00000 + 4551 = 1.00000 + 4555 = 1.00000 + 4552 = 1.00000 + 4556 = 1.00000 + 4563 = 1.00000 + 4565 = 1.00000 + 4567 = 1.00000 + 4564 = 1.00000 + 4566 = 1.00000 + 4568 = 1.00000 + 4571 = 1.00000 + 4573 = 1.00000 + 4572 = 1.00000 + 4574 = 1.00000 + 4579 = 1.00000 + 4583 = 1.00000 + 4580 = 1.00000 + 4584 = 1.00000 + 4581 = 1.00000 + 4585 = 1.00000 + 4582 = 1.00000 + 4586 = 1.00000 + 4587 = 1.00000 + 4595 = 1.00000 + 4588 = 1.00000 + 4596 = 1.00000 + 4589 = 1.00000 + 4597 = 1.00000 + 4590 = 1.00000 + 4598 = 1.00000 + 4729 = 1.00000 + 4730 = 1.00000 + 4733 = 1.00000 + 4735 = 1.00000 + 4734 = 1.00000 + 4736 = 1.00000 + 4745 = 1.00000 + 4747 = 1.00000 + 4746 = 1.00000 + 4748 = 1.00000 + 4753 = 1.00000 + 4757 = 1.00000 + 4754 = 1.00000 + 4758 = 1.00000 + 4755 = 1.00000 + 4759 = 1.00000 + 4756 = 1.00000 + 4760 = 1.00000 + 4809 = 1.00000 + 4811 = 1.00000 + 4821 = 1.00000 + 4825 = 1.00000 + 4822 = 1.00000 + 4826 = 1.00000 + 4833 = 1.00000 + 4837 = 1.00000 + 4834 = 1.00000 + 4838 = 1.00000 + 4857 = 1.00000 + 4865 = 1.00000 + 4858 = 1.00000 + 4866 = 1.00000 + 4859 = 1.00000 + 4867 = 1.00000 + 4860 = 1.00000 + 4868 = 1.00000 + 4917 = 1.00000 + 4918 = 1.00000 + 4919 = 1.00000 + 4921 = 1.00000 + 4922 = 1.00000 + 4925 = 1.00000 + 4927 = 1.00000 + 4926 = 1.00000 + 4928 = 1.00000 + 4929 = 1.00000 + 4933 = 1.00000 + 4930 = 1.00000 + 4934 = 1.00000 + 4941 = 1.00000 + 4943 = 1.00000 + 4945 = 1.00000 + 4942 = 1.00000 + 4944 = 1.00000 + 4946 = 1.00000 + 4949 = 1.00000 + 4951 = 1.00000 + 4950 = 1.00000 + 4952 = 1.00000 + 4957 = 1.00000 + 4961 = 1.00000 + 4958 = 1.00000 + 4962 = 1.00000 + 4959 = 1.00000 + 4963 = 1.00000 + 4960 = 1.00000 + 4964 = 1.00000 + 4965 = 1.00000 + 4973 = 1.00000 + 4966 = 1.00000 + 4974 = 1.00000 + 4967 = 1.00000 + 4975 = 1.00000 + 4968 = 1.00000 + 4976 = 1.00000 + 5107 = 1.00000 + 5108 = 1.00000 + 5111 = 1.00000 + 5113 = 1.00000 + 5112 = 1.00000 + 5114 = 1.00000 + 5123 = 1.00000 + 5125 = 1.00000 + 5124 = 1.00000 + 5126 = 1.00000 + 5131 = 1.00000 + 5135 = 1.00000 + 5132 = 1.00000 + 5136 = 1.00000 + 5133 = 1.00000 + 5137 = 1.00000 + 5134 = 1.00000 + 5138 = 1.00000 + 5188 = 1.00000 + 5189 = 1.00000 + 5195 = 1.00000 + 5197 = 1.00000 + 5196 = 1.00000 + 5198 = 1.00000 + 5213 = 1.00000 + 5215 = 1.00000 + 5214 = 1.00000 + 5216 = 1.00000 + 5227 = 1.00000 + 5231 = 1.00000 + 5228 = 1.00000 + 5232 = 1.00000 + 5229 = 1.00000 + 5233 = 1.00000 + 5230 = 1.00000 + 5234 = 1.00000 + 5377 = 1.00000 + 5378 = 1.00000 + 5384 = 1.00000 + 5386 = 1.00000 + 5385 = 1.00000 + 5387 = 1.00000 + 5402 = 1.00000 + 5404 = 1.00000 + 5403 = 1.00000 + 5405 = 1.00000 + 5416 = 1.00000 + 5420 = 1.00000 + 5417 = 1.00000 + 5421 = 1.00000 + 5418 = 1.00000 + 5422 = 1.00000 + 5419 = 1.00000 + 5423 = 1.00000 + 5566 = 1.00000 + 5567 = 1.00000 + 5573 = 1.00000 + 5575 = 1.00000 + 5574 = 1.00000 + 5576 = 1.00000 + 5591 = 1.00000 + 5593 = 1.00000 + 5592 = 1.00000 + 5594 = 1.00000 + 5605 = 1.00000 + 5609 = 1.00000 + 5606 = 1.00000 + 5610 = 1.00000 + 5607 = 1.00000 + 5611 = 1.00000 + 5608 = 1.00000 + 5612 = 1.00000 + 5755 = 1.00000 + 5756 = 1.00000 + 5762 = 1.00000 + 5764 = 1.00000 + 5763 = 1.00000 + 5765 = 1.00000 + 5780 = 1.00000 + 5782 = 1.00000 + 5781 = 1.00000 + 5783 = 1.00000 + 5794 = 1.00000 + 5798 = 1.00000 + 5795 = 1.00000 + 5799 = 1.00000 + 5796 = 1.00000 + 5800 = 1.00000 + 5797 = 1.00000 + 5801 = 1.00000 + 6025 = 1.00000 + 6026 = 1.00000 + 6029 = 1.00000 + 6031 = 1.00000 + 6030 = 1.00000 + 6032 = 1.00000 + 6041 = 1.00000 + 6043 = 1.00000 + 6042 = 1.00000 + 6044 = 1.00000 + 6049 = 1.00000 + 6053 = 1.00000 + 6050 = 1.00000 + 6054 = 1.00000 + 6051 = 1.00000 + 6055 = 1.00000 + 6052 = 1.00000 + 6056 = 1.00000 + 6187 = 1.00000 + 6188 = 1.00000 + 6191 = 1.00000 + 6193 = 1.00000 + 6192 = 1.00000 + 6194 = 1.00000 + 6203 = 1.00000 + 6205 = 1.00000 + 6204 = 1.00000 + 6206 = 1.00000 + 6211 = 1.00000 + 6215 = 1.00000 + 6212 = 1.00000 + 6216 = 1.00000 + 6213 = 1.00000 + 6217 = 1.00000 + 6214 = 1.00000 + 6218 = 1.00000 + 6349 = 1.00000 + 6350 = 1.00000 + 6353 = 1.00000 + 6355 = 1.00000 + 6354 = 1.00000 + 6356 = 1.00000 + 6365 = 1.00000 + 6367 = 1.00000 + 6366 = 1.00000 + 6368 = 1.00000 + 6373 = 1.00000 + 6377 = 1.00000 + 6374 = 1.00000 + 6378 = 1.00000 + 6375 = 1.00000 + 6379 = 1.00000 + 6376 = 1.00000 + 6380 = 1.00000 + 6511 = 1.00000 + 6512 = 1.00000 + 6515 = 1.00000 + 6517 = 1.00000 + 6516 = 1.00000 + 6518 = 1.00000 + 6527 = 1.00000 + 6529 = 1.00000 + 6528 = 1.00000 + 6530 = 1.00000 + 6535 = 1.00000 + 6539 = 1.00000 + 6536 = 1.00000 + 6540 = 1.00000 + 6537 = 1.00000 + 6541 = 1.00000 + 6538 = 1.00000 + 6542 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=3 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 3 = 1.00000 + 5 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 15 = 1.00000 + 17 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 26 = 1.00000 + 28 = 1.00000 + 27 = 1.00000 + 29 = 1.00000 + 36 = 1.00000 + 40 = 1.00000 + 37 = 1.00000 + 41 = 1.00000 + 50 = 1.00000 + 52 = 1.00000 + 51 = 1.00000 + 53 = 1.00000 + 60 = 1.00000 + 64 = 1.00000 + 61 = 1.00000 + 65 = 1.00000 + 72 = 1.00000 + 74 = 1.00000 + 76 = 1.00000 + 73 = 1.00000 + 75 = 1.00000 + 77 = 1.00000 + 78 = 1.00000 + 82 = 1.00000 + 79 = 1.00000 + 83 = 1.00000 + 86 = 1.00000 + 88 = 1.00000 + 87 = 1.00000 + 89 = 1.00000 + 100 = 1.00000 + 104 = 1.00000 + 101 = 1.00000 + 105 = 1.00000 + 102 = 1.00000 + 106 = 1.00000 + 103 = 1.00000 + 107 = 1.00000 + 120 = 1.00000 + 128 = 1.00000 + 121 = 1.00000 + 129 = 1.00000 + 122 = 1.00000 + 130 = 1.00000 + 123 = 1.00000 + 131 = 1.00000 + 192 = 1.00000 + 194 = 1.00000 + 198 = 1.00000 + 200 = 1.00000 + 210 = 1.00000 + 214 = 1.00000 + 211 = 1.00000 + 215 = 1.00000 + 228 = 1.00000 + 232 = 1.00000 + 229 = 1.00000 + 233 = 1.00000 + 240 = 1.00000 + 244 = 1.00000 + 241 = 1.00000 + 245 = 1.00000 + 264 = 1.00000 + 272 = 1.00000 + 265 = 1.00000 + 273 = 1.00000 + 266 = 1.00000 + 274 = 1.00000 + 267 = 1.00000 + 275 = 1.00000 + 337 = 1.00000 + 338 = 1.00000 + 343 = 1.00000 + 344 = 1.00000 + 350 = 1.00000 + 352 = 1.00000 + 351 = 1.00000 + 353 = 1.00000 + 368 = 1.00000 + 370 = 1.00000 + 369 = 1.00000 + 371 = 1.00000 + 386 = 1.00000 + 388 = 1.00000 + 387 = 1.00000 + 389 = 1.00000 + 400 = 1.00000 + 404 = 1.00000 + 401 = 1.00000 + 405 = 1.00000 + 402 = 1.00000 + 406 = 1.00000 + 403 = 1.00000 + 407 = 1.00000 + 588 = 1.00000 + 589 = 1.00000 + 590 = 1.00000 + 591 = 1.00000 + 593 = 1.00000 + 595 = 1.00000 + 596 = 1.00000 + 602 = 1.00000 + 604 = 1.00000 + 603 = 1.00000 + 605 = 1.00000 + 612 = 1.00000 + 616 = 1.00000 + 613 = 1.00000 + 617 = 1.00000 + 624 = 1.00000 + 626 = 1.00000 + 628 = 1.00000 + 625 = 1.00000 + 627 = 1.00000 + 629 = 1.00000 + 630 = 1.00000 + 634 = 1.00000 + 631 = 1.00000 + 635 = 1.00000 + 638 = 1.00000 + 640 = 1.00000 + 639 = 1.00000 + 641 = 1.00000 + 652 = 1.00000 + 656 = 1.00000 + 653 = 1.00000 + 657 = 1.00000 + 654 = 1.00000 + 658 = 1.00000 + 655 = 1.00000 + 659 = 1.00000 + 672 = 1.00000 + 680 = 1.00000 + 673 = 1.00000 + 681 = 1.00000 + 674 = 1.00000 + 682 = 1.00000 + 675 = 1.00000 + 683 = 1.00000 + 732 = 1.00000 + 734 = 1.00000 + 744 = 1.00000 + 748 = 1.00000 + 745 = 1.00000 + 749 = 1.00000 + 756 = 1.00000 + 760 = 1.00000 + 757 = 1.00000 + 761 = 1.00000 + 780 = 1.00000 + 788 = 1.00000 + 781 = 1.00000 + 789 = 1.00000 + 782 = 1.00000 + 790 = 1.00000 + 783 = 1.00000 + 791 = 1.00000 + 841 = 1.00000 + 842 = 1.00000 + 848 = 1.00000 + 850 = 1.00000 + 849 = 1.00000 + 851 = 1.00000 + 866 = 1.00000 + 868 = 1.00000 + 867 = 1.00000 + 869 = 1.00000 + 880 = 1.00000 + 884 = 1.00000 + 881 = 1.00000 + 885 = 1.00000 + 882 = 1.00000 + 886 = 1.00000 + 883 = 1.00000 + 887 = 1.00000 + 1029 = 1.00000 + 1031 = 1.00000 + 1035 = 1.00000 + 1037 = 1.00000 + 1047 = 1.00000 + 1051 = 1.00000 + 1048 = 1.00000 + 1052 = 1.00000 + 1065 = 1.00000 + 1069 = 1.00000 + 1066 = 1.00000 + 1070 = 1.00000 + 1077 = 1.00000 + 1081 = 1.00000 + 1078 = 1.00000 + 1082 = 1.00000 + 1101 = 1.00000 + 1109 = 1.00000 + 1102 = 1.00000 + 1110 = 1.00000 + 1103 = 1.00000 + 1111 = 1.00000 + 1104 = 1.00000 + 1112 = 1.00000 + 1173 = 1.00000 + 1174 = 1.00000 + 1175 = 1.00000 + 1177 = 1.00000 + 1178 = 1.00000 + 1179 = 1.00000 + 1180 = 1.00000 + 1181 = 1.00000 + 1183 = 1.00000 + 1184 = 1.00000 + 1187 = 1.00000 + 1189 = 1.00000 + 1188 = 1.00000 + 1190 = 1.00000 + 1191 = 1.00000 + 1195 = 1.00000 + 1192 = 1.00000 + 1196 = 1.00000 + 1205 = 1.00000 + 1207 = 1.00000 + 1206 = 1.00000 + 1208 = 1.00000 + 1209 = 1.00000 + 1213 = 1.00000 + 1210 = 1.00000 + 1214 = 1.00000 + 1221 = 1.00000 + 1223 = 1.00000 + 1225 = 1.00000 + 1222 = 1.00000 + 1224 = 1.00000 + 1226 = 1.00000 + 1229 = 1.00000 + 1231 = 1.00000 + 1230 = 1.00000 + 1232 = 1.00000 + 1237 = 1.00000 + 1241 = 1.00000 + 1238 = 1.00000 + 1242 = 1.00000 + 1239 = 1.00000 + 1243 = 1.00000 + 1240 = 1.00000 + 1244 = 1.00000 + 1245 = 1.00000 + 1253 = 1.00000 + 1246 = 1.00000 + 1254 = 1.00000 + 1247 = 1.00000 + 1255 = 1.00000 + 1248 = 1.00000 + 1256 = 1.00000 + 1426 = 1.00000 + 1427 = 1.00000 + 1429 = 1.00000 + 1430 = 1.00000 + 1433 = 1.00000 + 1435 = 1.00000 + 1434 = 1.00000 + 1436 = 1.00000 + 1445 = 1.00000 + 1447 = 1.00000 + 1446 = 1.00000 + 1448 = 1.00000 + 1457 = 1.00000 + 1459 = 1.00000 + 1458 = 1.00000 + 1460 = 1.00000 + 1465 = 1.00000 + 1469 = 1.00000 + 1466 = 1.00000 + 1470 = 1.00000 + 1467 = 1.00000 + 1471 = 1.00000 + 1468 = 1.00000 + 1472 = 1.00000 + 1533 = 1.00000 + 1535 = 1.00000 + 1545 = 1.00000 + 1549 = 1.00000 + 1546 = 1.00000 + 1550 = 1.00000 + 1557 = 1.00000 + 1561 = 1.00000 + 1558 = 1.00000 + 1562 = 1.00000 + 1581 = 1.00000 + 1589 = 1.00000 + 1582 = 1.00000 + 1590 = 1.00000 + 1583 = 1.00000 + 1591 = 1.00000 + 1584 = 1.00000 + 1592 = 1.00000 + 1641 = 1.00000 + 1642 = 1.00000 + 1643 = 1.00000 + 1645 = 1.00000 + 1646 = 1.00000 + 1649 = 1.00000 + 1651 = 1.00000 + 1650 = 1.00000 + 1652 = 1.00000 + 1653 = 1.00000 + 1657 = 1.00000 + 1654 = 1.00000 + 1658 = 1.00000 + 1665 = 1.00000 + 1667 = 1.00000 + 1669 = 1.00000 + 1666 = 1.00000 + 1668 = 1.00000 + 1670 = 1.00000 + 1673 = 1.00000 + 1675 = 1.00000 + 1674 = 1.00000 + 1676 = 1.00000 + 1681 = 1.00000 + 1685 = 1.00000 + 1682 = 1.00000 + 1686 = 1.00000 + 1683 = 1.00000 + 1687 = 1.00000 + 1684 = 1.00000 + 1688 = 1.00000 + 1689 = 1.00000 + 1697 = 1.00000 + 1690 = 1.00000 + 1698 = 1.00000 + 1691 = 1.00000 + 1699 = 1.00000 + 1692 = 1.00000 + 1700 = 1.00000 + 1831 = 1.00000 + 1832 = 1.00000 + 1835 = 1.00000 + 1837 = 1.00000 + 1836 = 1.00000 + 1838 = 1.00000 + 1847 = 1.00000 + 1849 = 1.00000 + 1848 = 1.00000 + 1850 = 1.00000 + 1855 = 1.00000 + 1859 = 1.00000 + 1856 = 1.00000 + 1860 = 1.00000 + 1857 = 1.00000 + 1861 = 1.00000 + 1858 = 1.00000 + 1862 = 1.00000 + 1912 = 1.00000 + 1913 = 1.00000 + 1918 = 1.00000 + 1919 = 1.00000 + 1925 = 1.00000 + 1927 = 1.00000 + 1926 = 1.00000 + 1928 = 1.00000 + 1943 = 1.00000 + 1945 = 1.00000 + 1944 = 1.00000 + 1946 = 1.00000 + 1961 = 1.00000 + 1963 = 1.00000 + 1962 = 1.00000 + 1964 = 1.00000 + 1975 = 1.00000 + 1979 = 1.00000 + 1976 = 1.00000 + 1980 = 1.00000 + 1977 = 1.00000 + 1981 = 1.00000 + 1978 = 1.00000 + 1982 = 1.00000 + 2163 = 1.00000 + 2164 = 1.00000 + 2165 = 1.00000 + 2166 = 1.00000 + 2168 = 1.00000 + 2169 = 1.00000 + 2170 = 1.00000 + 2171 = 1.00000 + 2172 = 1.00000 + 2174 = 1.00000 + 2177 = 1.00000 + 2179 = 1.00000 + 2178 = 1.00000 + 2180 = 1.00000 + 2187 = 1.00000 + 2191 = 1.00000 + 2188 = 1.00000 + 2192 = 1.00000 + 2195 = 1.00000 + 2197 = 1.00000 + 2196 = 1.00000 + 2198 = 1.00000 + 2205 = 1.00000 + 2209 = 1.00000 + 2206 = 1.00000 + 2210 = 1.00000 + 2211 = 1.00000 + 2213 = 1.00000 + 2215 = 1.00000 + 2212 = 1.00000 + 2214 = 1.00000 + 2216 = 1.00000 + 2217 = 1.00000 + 2221 = 1.00000 + 2218 = 1.00000 + 2222 = 1.00000 + 2227 = 1.00000 + 2231 = 1.00000 + 2228 = 1.00000 + 2232 = 1.00000 + 2229 = 1.00000 + 2233 = 1.00000 + 2230 = 1.00000 + 2234 = 1.00000 + 2247 = 1.00000 + 2255 = 1.00000 + 2248 = 1.00000 + 2256 = 1.00000 + 2249 = 1.00000 + 2257 = 1.00000 + 2250 = 1.00000 + 2258 = 1.00000 + 2307 = 1.00000 + 2309 = 1.00000 + 2310 = 1.00000 + 2312 = 1.00000 + 2319 = 1.00000 + 2323 = 1.00000 + 2320 = 1.00000 + 2324 = 1.00000 + 2331 = 1.00000 + 2335 = 1.00000 + 2332 = 1.00000 + 2336 = 1.00000 + 2337 = 1.00000 + 2341 = 1.00000 + 2338 = 1.00000 + 2342 = 1.00000 + 2355 = 1.00000 + 2363 = 1.00000 + 2356 = 1.00000 + 2364 = 1.00000 + 2357 = 1.00000 + 2365 = 1.00000 + 2358 = 1.00000 + 2366 = 1.00000 + 2416 = 1.00000 + 2417 = 1.00000 + 2423 = 1.00000 + 2425 = 1.00000 + 2424 = 1.00000 + 2426 = 1.00000 + 2441 = 1.00000 + 2443 = 1.00000 + 2442 = 1.00000 + 2444 = 1.00000 + 2455 = 1.00000 + 2459 = 1.00000 + 2456 = 1.00000 + 2460 = 1.00000 + 2457 = 1.00000 + 2461 = 1.00000 + 2458 = 1.00000 + 2462 = 1.00000 + 2604 = 1.00000 + 2605 = 1.00000 + 2606 = 1.00000 + 2607 = 1.00000 + 2609 = 1.00000 + 2612 = 1.00000 + 2614 = 1.00000 + 2613 = 1.00000 + 2615 = 1.00000 + 2622 = 1.00000 + 2626 = 1.00000 + 2623 = 1.00000 + 2627 = 1.00000 + 2628 = 1.00000 + 2630 = 1.00000 + 2632 = 1.00000 + 2629 = 1.00000 + 2631 = 1.00000 + 2633 = 1.00000 + 2634 = 1.00000 + 2638 = 1.00000 + 2635 = 1.00000 + 2639 = 1.00000 + 2644 = 1.00000 + 2648 = 1.00000 + 2645 = 1.00000 + 2649 = 1.00000 + 2646 = 1.00000 + 2650 = 1.00000 + 2647 = 1.00000 + 2651 = 1.00000 + 2664 = 1.00000 + 2672 = 1.00000 + 2665 = 1.00000 + 2673 = 1.00000 + 2666 = 1.00000 + 2674 = 1.00000 + 2667 = 1.00000 + 2675 = 1.00000 + 2712 = 1.00000 + 2714 = 1.00000 + 2721 = 1.00000 + 2725 = 1.00000 + 2722 = 1.00000 + 2726 = 1.00000 + 2727 = 1.00000 + 2731 = 1.00000 + 2728 = 1.00000 + 2732 = 1.00000 + 2745 = 1.00000 + 2753 = 1.00000 + 2746 = 1.00000 + 2754 = 1.00000 + 2747 = 1.00000 + 2755 = 1.00000 + 2748 = 1.00000 + 2756 = 1.00000 + 2902 = 1.00000 + 2903 = 1.00000 + 2905 = 1.00000 + 2906 = 1.00000 + 2909 = 1.00000 + 2911 = 1.00000 + 2910 = 1.00000 + 2912 = 1.00000 + 2921 = 1.00000 + 2923 = 1.00000 + 2922 = 1.00000 + 2924 = 1.00000 + 2933 = 1.00000 + 2935 = 1.00000 + 2934 = 1.00000 + 2936 = 1.00000 + 2941 = 1.00000 + 2945 = 1.00000 + 2942 = 1.00000 + 2946 = 1.00000 + 2943 = 1.00000 + 2947 = 1.00000 + 2944 = 1.00000 + 2948 = 1.00000 + 3009 = 1.00000 + 3011 = 1.00000 + 3012 = 1.00000 + 3014 = 1.00000 + 3021 = 1.00000 + 3025 = 1.00000 + 3022 = 1.00000 + 3026 = 1.00000 + 3033 = 1.00000 + 3037 = 1.00000 + 3034 = 1.00000 + 3038 = 1.00000 + 3039 = 1.00000 + 3043 = 1.00000 + 3040 = 1.00000 + 3044 = 1.00000 + 3057 = 1.00000 + 3065 = 1.00000 + 3058 = 1.00000 + 3066 = 1.00000 + 3059 = 1.00000 + 3067 = 1.00000 + 3060 = 1.00000 + 3068 = 1.00000 + 3117 = 1.00000 + 3118 = 1.00000 + 3119 = 1.00000 + 3120 = 1.00000 + 3121 = 1.00000 + 3122 = 1.00000 + 3125 = 1.00000 + 3127 = 1.00000 + 3126 = 1.00000 + 3128 = 1.00000 + 3129 = 1.00000 + 3133 = 1.00000 + 3130 = 1.00000 + 3134 = 1.00000 + 3137 = 1.00000 + 3139 = 1.00000 + 3138 = 1.00000 + 3140 = 1.00000 + 3141 = 1.00000 + 3145 = 1.00000 + 3142 = 1.00000 + 3146 = 1.00000 + 3147 = 1.00000 + 3149 = 1.00000 + 3151 = 1.00000 + 3148 = 1.00000 + 3150 = 1.00000 + 3152 = 1.00000 + 3157 = 1.00000 + 3161 = 1.00000 + 3158 = 1.00000 + 3162 = 1.00000 + 3159 = 1.00000 + 3163 = 1.00000 + 3160 = 1.00000 + 3164 = 1.00000 + 3165 = 1.00000 + 3173 = 1.00000 + 3166 = 1.00000 + 3174 = 1.00000 + 3167 = 1.00000 + 3175 = 1.00000 + 3168 = 1.00000 + 3176 = 1.00000 + 3307 = 1.00000 + 3308 = 1.00000 + 3311 = 1.00000 + 3313 = 1.00000 + 3312 = 1.00000 + 3314 = 1.00000 + 3323 = 1.00000 + 3325 = 1.00000 + 3324 = 1.00000 + 3326 = 1.00000 + 3331 = 1.00000 + 3335 = 1.00000 + 3332 = 1.00000 + 3336 = 1.00000 + 3333 = 1.00000 + 3337 = 1.00000 + 3334 = 1.00000 + 3338 = 1.00000 + 3387 = 1.00000 + 3389 = 1.00000 + 3396 = 1.00000 + 3400 = 1.00000 + 3397 = 1.00000 + 3401 = 1.00000 + 3402 = 1.00000 + 3406 = 1.00000 + 3403 = 1.00000 + 3407 = 1.00000 + 3420 = 1.00000 + 3428 = 1.00000 + 3421 = 1.00000 + 3429 = 1.00000 + 3422 = 1.00000 + 3430 = 1.00000 + 3423 = 1.00000 + 3431 = 1.00000 + 3468 = 1.00000 + 3469 = 1.00000 + 3470 = 1.00000 + 3473 = 1.00000 + 3475 = 1.00000 + 3474 = 1.00000 + 3476 = 1.00000 + 3477 = 1.00000 + 3481 = 1.00000 + 3478 = 1.00000 + 3482 = 1.00000 + 3483 = 1.00000 + 3485 = 1.00000 + 3487 = 1.00000 + 3484 = 1.00000 + 3486 = 1.00000 + 3488 = 1.00000 + 3493 = 1.00000 + 3497 = 1.00000 + 3494 = 1.00000 + 3498 = 1.00000 + 3495 = 1.00000 + 3499 = 1.00000 + 3496 = 1.00000 + 3500 = 1.00000 + 3501 = 1.00000 + 3509 = 1.00000 + 3502 = 1.00000 + 3510 = 1.00000 + 3503 = 1.00000 + 3511 = 1.00000 + 3504 = 1.00000 + 3512 = 1.00000 + 3549 = 1.00000 + 3550 = 1.00000 + 3551 = 1.00000 + 3552 = 1.00000 + 3554 = 1.00000 + 3556 = 1.00000 + 3557 = 1.00000 + 3563 = 1.00000 + 3565 = 1.00000 + 3564 = 1.00000 + 3566 = 1.00000 + 3573 = 1.00000 + 3577 = 1.00000 + 3574 = 1.00000 + 3578 = 1.00000 + 3585 = 1.00000 + 3587 = 1.00000 + 3589 = 1.00000 + 3586 = 1.00000 + 3588 = 1.00000 + 3590 = 1.00000 + 3591 = 1.00000 + 3595 = 1.00000 + 3592 = 1.00000 + 3596 = 1.00000 + 3599 = 1.00000 + 3601 = 1.00000 + 3600 = 1.00000 + 3602 = 1.00000 + 3613 = 1.00000 + 3617 = 1.00000 + 3614 = 1.00000 + 3618 = 1.00000 + 3615 = 1.00000 + 3619 = 1.00000 + 3616 = 1.00000 + 3620 = 1.00000 + 3633 = 1.00000 + 3641 = 1.00000 + 3634 = 1.00000 + 3642 = 1.00000 + 3635 = 1.00000 + 3643 = 1.00000 + 3636 = 1.00000 + 3644 = 1.00000 + 3693 = 1.00000 + 3695 = 1.00000 + 3705 = 1.00000 + 3709 = 1.00000 + 3706 = 1.00000 + 3710 = 1.00000 + 3717 = 1.00000 + 3721 = 1.00000 + 3718 = 1.00000 + 3722 = 1.00000 + 3741 = 1.00000 + 3749 = 1.00000 + 3742 = 1.00000 + 3750 = 1.00000 + 3743 = 1.00000 + 3751 = 1.00000 + 3744 = 1.00000 + 3752 = 1.00000 + 3802 = 1.00000 + 3803 = 1.00000 + 3809 = 1.00000 + 3811 = 1.00000 + 3810 = 1.00000 + 3812 = 1.00000 + 3827 = 1.00000 + 3829 = 1.00000 + 3828 = 1.00000 + 3830 = 1.00000 + 3841 = 1.00000 + 3845 = 1.00000 + 3842 = 1.00000 + 3846 = 1.00000 + 3843 = 1.00000 + 3847 = 1.00000 + 3844 = 1.00000 + 3848 = 1.00000 + 3990 = 1.00000 + 3991 = 1.00000 + 3992 = 1.00000 + 3993 = 1.00000 + 3995 = 1.00000 + 3997 = 1.00000 + 3998 = 1.00000 + 4004 = 1.00000 + 4006 = 1.00000 + 4005 = 1.00000 + 4007 = 1.00000 + 4014 = 1.00000 + 4018 = 1.00000 + 4015 = 1.00000 + 4019 = 1.00000 + 4026 = 1.00000 + 4028 = 1.00000 + 4030 = 1.00000 + 4027 = 1.00000 + 4029 = 1.00000 + 4031 = 1.00000 + 4032 = 1.00000 + 4036 = 1.00000 + 4033 = 1.00000 + 4037 = 1.00000 + 4040 = 1.00000 + 4042 = 1.00000 + 4041 = 1.00000 + 4043 = 1.00000 + 4054 = 1.00000 + 4058 = 1.00000 + 4055 = 1.00000 + 4059 = 1.00000 + 4056 = 1.00000 + 4060 = 1.00000 + 4057 = 1.00000 + 4061 = 1.00000 + 4074 = 1.00000 + 4082 = 1.00000 + 4075 = 1.00000 + 4083 = 1.00000 + 4076 = 1.00000 + 4084 = 1.00000 + 4077 = 1.00000 + 4085 = 1.00000 + 4134 = 1.00000 + 4136 = 1.00000 + 4146 = 1.00000 + 4150 = 1.00000 + 4147 = 1.00000 + 4151 = 1.00000 + 4158 = 1.00000 + 4162 = 1.00000 + 4159 = 1.00000 + 4163 = 1.00000 + 4182 = 1.00000 + 4190 = 1.00000 + 4183 = 1.00000 + 4191 = 1.00000 + 4184 = 1.00000 + 4192 = 1.00000 + 4185 = 1.00000 + 4193 = 1.00000 + 4243 = 1.00000 + 4244 = 1.00000 + 4250 = 1.00000 + 4252 = 1.00000 + 4251 = 1.00000 + 4253 = 1.00000 + 4268 = 1.00000 + 4270 = 1.00000 + 4269 = 1.00000 + 4271 = 1.00000 + 4282 = 1.00000 + 4286 = 1.00000 + 4283 = 1.00000 + 4287 = 1.00000 + 4284 = 1.00000 + 4288 = 1.00000 + 4285 = 1.00000 + 4289 = 1.00000 + 4431 = 1.00000 + 4433 = 1.00000 + 4443 = 1.00000 + 4447 = 1.00000 + 4444 = 1.00000 + 4448 = 1.00000 + 4455 = 1.00000 + 4459 = 1.00000 + 4456 = 1.00000 + 4460 = 1.00000 + 4479 = 1.00000 + 4487 = 1.00000 + 4480 = 1.00000 + 4488 = 1.00000 + 4481 = 1.00000 + 4489 = 1.00000 + 4482 = 1.00000 + 4490 = 1.00000 + 4539 = 1.00000 + 4540 = 1.00000 + 4541 = 1.00000 + 4543 = 1.00000 + 4544 = 1.00000 + 4547 = 1.00000 + 4549 = 1.00000 + 4548 = 1.00000 + 4550 = 1.00000 + 4551 = 1.00000 + 4555 = 1.00000 + 4552 = 1.00000 + 4556 = 1.00000 + 4563 = 1.00000 + 4565 = 1.00000 + 4567 = 1.00000 + 4564 = 1.00000 + 4566 = 1.00000 + 4568 = 1.00000 + 4571 = 1.00000 + 4573 = 1.00000 + 4572 = 1.00000 + 4574 = 1.00000 + 4579 = 1.00000 + 4583 = 1.00000 + 4580 = 1.00000 + 4584 = 1.00000 + 4581 = 1.00000 + 4585 = 1.00000 + 4582 = 1.00000 + 4586 = 1.00000 + 4587 = 1.00000 + 4595 = 1.00000 + 4588 = 1.00000 + 4596 = 1.00000 + 4589 = 1.00000 + 4597 = 1.00000 + 4590 = 1.00000 + 4598 = 1.00000 + 4729 = 1.00000 + 4730 = 1.00000 + 4733 = 1.00000 + 4735 = 1.00000 + 4734 = 1.00000 + 4736 = 1.00000 + 4745 = 1.00000 + 4747 = 1.00000 + 4746 = 1.00000 + 4748 = 1.00000 + 4753 = 1.00000 + 4757 = 1.00000 + 4754 = 1.00000 + 4758 = 1.00000 + 4755 = 1.00000 + 4759 = 1.00000 + 4756 = 1.00000 + 4760 = 1.00000 + 4809 = 1.00000 + 4811 = 1.00000 + 4821 = 1.00000 + 4825 = 1.00000 + 4822 = 1.00000 + 4826 = 1.00000 + 4833 = 1.00000 + 4837 = 1.00000 + 4834 = 1.00000 + 4838 = 1.00000 + 4857 = 1.00000 + 4865 = 1.00000 + 4858 = 1.00000 + 4866 = 1.00000 + 4859 = 1.00000 + 4867 = 1.00000 + 4860 = 1.00000 + 4868 = 1.00000 + 4917 = 1.00000 + 4918 = 1.00000 + 4919 = 1.00000 + 4921 = 1.00000 + 4922 = 1.00000 + 4925 = 1.00000 + 4927 = 1.00000 + 4926 = 1.00000 + 4928 = 1.00000 + 4929 = 1.00000 + 4933 = 1.00000 + 4930 = 1.00000 + 4934 = 1.00000 + 4941 = 1.00000 + 4943 = 1.00000 + 4945 = 1.00000 + 4942 = 1.00000 + 4944 = 1.00000 + 4946 = 1.00000 + 4949 = 1.00000 + 4951 = 1.00000 + 4950 = 1.00000 + 4952 = 1.00000 + 4957 = 1.00000 + 4961 = 1.00000 + 4958 = 1.00000 + 4962 = 1.00000 + 4959 = 1.00000 + 4963 = 1.00000 + 4960 = 1.00000 + 4964 = 1.00000 + 4965 = 1.00000 + 4973 = 1.00000 + 4966 = 1.00000 + 4974 = 1.00000 + 4967 = 1.00000 + 4975 = 1.00000 + 4968 = 1.00000 + 4976 = 1.00000 + 5107 = 1.00000 + 5108 = 1.00000 + 5111 = 1.00000 + 5113 = 1.00000 + 5112 = 1.00000 + 5114 = 1.00000 + 5123 = 1.00000 + 5125 = 1.00000 + 5124 = 1.00000 + 5126 = 1.00000 + 5131 = 1.00000 + 5135 = 1.00000 + 5132 = 1.00000 + 5136 = 1.00000 + 5133 = 1.00000 + 5137 = 1.00000 + 5134 = 1.00000 + 5138 = 1.00000 + 5188 = 1.00000 + 5189 = 1.00000 + 5195 = 1.00000 + 5197 = 1.00000 + 5196 = 1.00000 + 5198 = 1.00000 + 5213 = 1.00000 + 5215 = 1.00000 + 5214 = 1.00000 + 5216 = 1.00000 + 5227 = 1.00000 + 5231 = 1.00000 + 5228 = 1.00000 + 5232 = 1.00000 + 5229 = 1.00000 + 5233 = 1.00000 + 5230 = 1.00000 + 5234 = 1.00000 + 5376 = 1.00000 + 5377 = 1.00000 + 5378 = 1.00000 + 5379 = 1.00000 + 5381 = 1.00000 + 5384 = 1.00000 + 5386 = 1.00000 + 5385 = 1.00000 + 5387 = 1.00000 + 5394 = 1.00000 + 5398 = 1.00000 + 5395 = 1.00000 + 5399 = 1.00000 + 5400 = 1.00000 + 5402 = 1.00000 + 5404 = 1.00000 + 5401 = 1.00000 + 5403 = 1.00000 + 5405 = 1.00000 + 5406 = 1.00000 + 5410 = 1.00000 + 5407 = 1.00000 + 5411 = 1.00000 + 5416 = 1.00000 + 5420 = 1.00000 + 5417 = 1.00000 + 5421 = 1.00000 + 5418 = 1.00000 + 5422 = 1.00000 + 5419 = 1.00000 + 5423 = 1.00000 + 5436 = 1.00000 + 5444 = 1.00000 + 5437 = 1.00000 + 5445 = 1.00000 + 5438 = 1.00000 + 5446 = 1.00000 + 5439 = 1.00000 + 5447 = 1.00000 + 5484 = 1.00000 + 5486 = 1.00000 + 5493 = 1.00000 + 5497 = 1.00000 + 5494 = 1.00000 + 5498 = 1.00000 + 5499 = 1.00000 + 5503 = 1.00000 + 5500 = 1.00000 + 5504 = 1.00000 + 5517 = 1.00000 + 5525 = 1.00000 + 5518 = 1.00000 + 5526 = 1.00000 + 5519 = 1.00000 + 5527 = 1.00000 + 5520 = 1.00000 + 5528 = 1.00000 + 5566 = 1.00000 + 5567 = 1.00000 + 5573 = 1.00000 + 5575 = 1.00000 + 5574 = 1.00000 + 5576 = 1.00000 + 5591 = 1.00000 + 5593 = 1.00000 + 5592 = 1.00000 + 5594 = 1.00000 + 5605 = 1.00000 + 5609 = 1.00000 + 5606 = 1.00000 + 5610 = 1.00000 + 5607 = 1.00000 + 5611 = 1.00000 + 5608 = 1.00000 + 5612 = 1.00000 + 5754 = 1.00000 + 5755 = 1.00000 + 5756 = 1.00000 + 5757 = 1.00000 + 5759 = 1.00000 + 5762 = 1.00000 + 5764 = 1.00000 + 5763 = 1.00000 + 5765 = 1.00000 + 5772 = 1.00000 + 5776 = 1.00000 + 5773 = 1.00000 + 5777 = 1.00000 + 5778 = 1.00000 + 5780 = 1.00000 + 5782 = 1.00000 + 5779 = 1.00000 + 5781 = 1.00000 + 5783 = 1.00000 + 5784 = 1.00000 + 5788 = 1.00000 + 5785 = 1.00000 + 5789 = 1.00000 + 5794 = 1.00000 + 5798 = 1.00000 + 5795 = 1.00000 + 5799 = 1.00000 + 5796 = 1.00000 + 5800 = 1.00000 + 5797 = 1.00000 + 5801 = 1.00000 + 5814 = 1.00000 + 5822 = 1.00000 + 5815 = 1.00000 + 5823 = 1.00000 + 5816 = 1.00000 + 5824 = 1.00000 + 5817 = 1.00000 + 5825 = 1.00000 + 5862 = 1.00000 + 5864 = 1.00000 + 5871 = 1.00000 + 5875 = 1.00000 + 5872 = 1.00000 + 5876 = 1.00000 + 5877 = 1.00000 + 5881 = 1.00000 + 5878 = 1.00000 + 5882 = 1.00000 + 5895 = 1.00000 + 5903 = 1.00000 + 5896 = 1.00000 + 5904 = 1.00000 + 5897 = 1.00000 + 5905 = 1.00000 + 5898 = 1.00000 + 5906 = 1.00000 + 6025 = 1.00000 + 6026 = 1.00000 + 6029 = 1.00000 + 6031 = 1.00000 + 6030 = 1.00000 + 6032 = 1.00000 + 6041 = 1.00000 + 6043 = 1.00000 + 6042 = 1.00000 + 6044 = 1.00000 + 6049 = 1.00000 + 6053 = 1.00000 + 6050 = 1.00000 + 6054 = 1.00000 + 6051 = 1.00000 + 6055 = 1.00000 + 6052 = 1.00000 + 6056 = 1.00000 + 6105 = 1.00000 + 6107 = 1.00000 + 6114 = 1.00000 + 6118 = 1.00000 + 6115 = 1.00000 + 6119 = 1.00000 + 6120 = 1.00000 + 6124 = 1.00000 + 6121 = 1.00000 + 6125 = 1.00000 + 6138 = 1.00000 + 6146 = 1.00000 + 6139 = 1.00000 + 6147 = 1.00000 + 6140 = 1.00000 + 6148 = 1.00000 + 6141 = 1.00000 + 6149 = 1.00000 + 6186 = 1.00000 + 6187 = 1.00000 + 6188 = 1.00000 + 6191 = 1.00000 + 6193 = 1.00000 + 6192 = 1.00000 + 6194 = 1.00000 + 6195 = 1.00000 + 6199 = 1.00000 + 6196 = 1.00000 + 6200 = 1.00000 + 6201 = 1.00000 + 6203 = 1.00000 + 6205 = 1.00000 + 6202 = 1.00000 + 6204 = 1.00000 + 6206 = 1.00000 + 6211 = 1.00000 + 6215 = 1.00000 + 6212 = 1.00000 + 6216 = 1.00000 + 6213 = 1.00000 + 6217 = 1.00000 + 6214 = 1.00000 + 6218 = 1.00000 + 6219 = 1.00000 + 6227 = 1.00000 + 6220 = 1.00000 + 6228 = 1.00000 + 6221 = 1.00000 + 6229 = 1.00000 + 6222 = 1.00000 + 6230 = 1.00000 + 6349 = 1.00000 + 6350 = 1.00000 + 6353 = 1.00000 + 6355 = 1.00000 + 6354 = 1.00000 + 6356 = 1.00000 + 6365 = 1.00000 + 6367 = 1.00000 + 6366 = 1.00000 + 6368 = 1.00000 + 6373 = 1.00000 + 6377 = 1.00000 + 6374 = 1.00000 + 6378 = 1.00000 + 6375 = 1.00000 + 6379 = 1.00000 + 6376 = 1.00000 + 6380 = 1.00000 + 6429 = 1.00000 + 6431 = 1.00000 + 6438 = 1.00000 + 6442 = 1.00000 + 6439 = 1.00000 + 6443 = 1.00000 + 6444 = 1.00000 + 6448 = 1.00000 + 6445 = 1.00000 + 6449 = 1.00000 + 6462 = 1.00000 + 6470 = 1.00000 + 6463 = 1.00000 + 6471 = 1.00000 + 6464 = 1.00000 + 6472 = 1.00000 + 6465 = 1.00000 + 6473 = 1.00000 + 6510 = 1.00000 + 6511 = 1.00000 + 6512 = 1.00000 + 6515 = 1.00000 + 6517 = 1.00000 + 6516 = 1.00000 + 6518 = 1.00000 + 6519 = 1.00000 + 6523 = 1.00000 + 6520 = 1.00000 + 6524 = 1.00000 + 6525 = 1.00000 + 6527 = 1.00000 + 6529 = 1.00000 + 6526 = 1.00000 + 6528 = 1.00000 + 6530 = 1.00000 + 6535 = 1.00000 + 6539 = 1.00000 + 6536 = 1.00000 + 6540 = 1.00000 + 6537 = 1.00000 + 6541 = 1.00000 + 6538 = 1.00000 + 6542 = 1.00000 + 6543 = 1.00000 + 6551 = 1.00000 + 6544 = 1.00000 + 6552 = 1.00000 + 6545 = 1.00000 + 6553 = 1.00000 + 6546 = 1.00000 + 6554 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=4 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 3 = 1.00000 + 4 = 1.00000 + 5 = 1.00000 + 6 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 9 = 1.00000 + 10 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 15 = 1.00000 + 17 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 24 = 1.00000 + 26 = 1.00000 + 28 = 1.00000 + 25 = 1.00000 + 27 = 1.00000 + 29 = 1.00000 + 30 = 1.00000 + 32 = 1.00000 + 31 = 1.00000 + 33 = 1.00000 + 36 = 1.00000 + 38 = 1.00000 + 40 = 1.00000 + 37 = 1.00000 + 39 = 1.00000 + 41 = 1.00000 + 42 = 1.00000 + 44 = 1.00000 + 43 = 1.00000 + 45 = 1.00000 + 50 = 1.00000 + 52 = 1.00000 + 51 = 1.00000 + 53 = 1.00000 + 60 = 1.00000 + 64 = 1.00000 + 61 = 1.00000 + 65 = 1.00000 + 72 = 1.00000 + 74 = 1.00000 + 76 = 1.00000 + 73 = 1.00000 + 75 = 1.00000 + 77 = 1.00000 + 78 = 1.00000 + 82 = 1.00000 + 79 = 1.00000 + 83 = 1.00000 + 86 = 1.00000 + 88 = 1.00000 + 87 = 1.00000 + 89 = 1.00000 + 100 = 1.00000 + 104 = 1.00000 + 101 = 1.00000 + 105 = 1.00000 + 102 = 1.00000 + 106 = 1.00000 + 103 = 1.00000 + 107 = 1.00000 + 120 = 1.00000 + 128 = 1.00000 + 121 = 1.00000 + 129 = 1.00000 + 122 = 1.00000 + 130 = 1.00000 + 123 = 1.00000 + 131 = 1.00000 + 144 = 1.00000 + 148 = 1.00000 + 145 = 1.00000 + 149 = 1.00000 + 146 = 1.00000 + 150 = 1.00000 + 147 = 1.00000 + 151 = 1.00000 + 192 = 1.00000 + 193 = 1.00000 + 194 = 1.00000 + 195 = 1.00000 + 196 = 1.00000 + 198 = 1.00000 + 200 = 1.00000 + 204 = 1.00000 + 206 = 1.00000 + 205 = 1.00000 + 207 = 1.00000 + 210 = 1.00000 + 212 = 1.00000 + 214 = 1.00000 + 211 = 1.00000 + 213 = 1.00000 + 215 = 1.00000 + 216 = 1.00000 + 218 = 1.00000 + 217 = 1.00000 + 219 = 1.00000 + 228 = 1.00000 + 232 = 1.00000 + 229 = 1.00000 + 233 = 1.00000 + 240 = 1.00000 + 244 = 1.00000 + 241 = 1.00000 + 245 = 1.00000 + 264 = 1.00000 + 272 = 1.00000 + 265 = 1.00000 + 273 = 1.00000 + 266 = 1.00000 + 274 = 1.00000 + 267 = 1.00000 + 275 = 1.00000 + 288 = 1.00000 + 292 = 1.00000 + 289 = 1.00000 + 293 = 1.00000 + 290 = 1.00000 + 294 = 1.00000 + 291 = 1.00000 + 295 = 1.00000 + 336 = 1.00000 + 337 = 1.00000 + 338 = 1.00000 + 339 = 1.00000 + 340 = 1.00000 + 343 = 1.00000 + 344 = 1.00000 + 348 = 1.00000 + 350 = 1.00000 + 352 = 1.00000 + 349 = 1.00000 + 351 = 1.00000 + 353 = 1.00000 + 354 = 1.00000 + 356 = 1.00000 + 355 = 1.00000 + 357 = 1.00000 + 360 = 1.00000 + 362 = 1.00000 + 361 = 1.00000 + 363 = 1.00000 + 368 = 1.00000 + 370 = 1.00000 + 369 = 1.00000 + 371 = 1.00000 + 386 = 1.00000 + 388 = 1.00000 + 387 = 1.00000 + 389 = 1.00000 + 400 = 1.00000 + 404 = 1.00000 + 401 = 1.00000 + 405 = 1.00000 + 402 = 1.00000 + 406 = 1.00000 + 403 = 1.00000 + 407 = 1.00000 + 432 = 1.00000 + 436 = 1.00000 + 433 = 1.00000 + 437 = 1.00000 + 434 = 1.00000 + 438 = 1.00000 + 435 = 1.00000 + 439 = 1.00000 + 480 = 1.00000 + 481 = 1.00000 + 486 = 1.00000 + 488 = 1.00000 + 487 = 1.00000 + 489 = 1.00000 + 492 = 1.00000 + 494 = 1.00000 + 493 = 1.00000 + 495 = 1.00000 + 540 = 1.00000 + 544 = 1.00000 + 541 = 1.00000 + 545 = 1.00000 + 542 = 1.00000 + 546 = 1.00000 + 543 = 1.00000 + 547 = 1.00000 + 588 = 1.00000 + 589 = 1.00000 + 590 = 1.00000 + 591 = 1.00000 + 593 = 1.00000 + 595 = 1.00000 + 596 = 1.00000 + 602 = 1.00000 + 604 = 1.00000 + 603 = 1.00000 + 605 = 1.00000 + 612 = 1.00000 + 616 = 1.00000 + 613 = 1.00000 + 617 = 1.00000 + 624 = 1.00000 + 626 = 1.00000 + 628 = 1.00000 + 625 = 1.00000 + 627 = 1.00000 + 629 = 1.00000 + 630 = 1.00000 + 634 = 1.00000 + 631 = 1.00000 + 635 = 1.00000 + 638 = 1.00000 + 640 = 1.00000 + 639 = 1.00000 + 641 = 1.00000 + 652 = 1.00000 + 656 = 1.00000 + 653 = 1.00000 + 657 = 1.00000 + 654 = 1.00000 + 658 = 1.00000 + 655 = 1.00000 + 659 = 1.00000 + 672 = 1.00000 + 680 = 1.00000 + 673 = 1.00000 + 681 = 1.00000 + 674 = 1.00000 + 682 = 1.00000 + 675 = 1.00000 + 683 = 1.00000 + 732 = 1.00000 + 734 = 1.00000 + 744 = 1.00000 + 748 = 1.00000 + 745 = 1.00000 + 749 = 1.00000 + 756 = 1.00000 + 760 = 1.00000 + 757 = 1.00000 + 761 = 1.00000 + 780 = 1.00000 + 788 = 1.00000 + 781 = 1.00000 + 789 = 1.00000 + 782 = 1.00000 + 790 = 1.00000 + 783 = 1.00000 + 791 = 1.00000 + 841 = 1.00000 + 842 = 1.00000 + 848 = 1.00000 + 850 = 1.00000 + 849 = 1.00000 + 851 = 1.00000 + 866 = 1.00000 + 868 = 1.00000 + 867 = 1.00000 + 869 = 1.00000 + 880 = 1.00000 + 884 = 1.00000 + 881 = 1.00000 + 885 = 1.00000 + 882 = 1.00000 + 886 = 1.00000 + 883 = 1.00000 + 887 = 1.00000 + 1029 = 1.00000 + 1030 = 1.00000 + 1031 = 1.00000 + 1032 = 1.00000 + 1033 = 1.00000 + 1035 = 1.00000 + 1037 = 1.00000 + 1041 = 1.00000 + 1043 = 1.00000 + 1042 = 1.00000 + 1044 = 1.00000 + 1047 = 1.00000 + 1049 = 1.00000 + 1051 = 1.00000 + 1048 = 1.00000 + 1050 = 1.00000 + 1052 = 1.00000 + 1053 = 1.00000 + 1055 = 1.00000 + 1054 = 1.00000 + 1056 = 1.00000 + 1065 = 1.00000 + 1069 = 1.00000 + 1066 = 1.00000 + 1070 = 1.00000 + 1077 = 1.00000 + 1081 = 1.00000 + 1078 = 1.00000 + 1082 = 1.00000 + 1101 = 1.00000 + 1109 = 1.00000 + 1102 = 1.00000 + 1110 = 1.00000 + 1103 = 1.00000 + 1111 = 1.00000 + 1104 = 1.00000 + 1112 = 1.00000 + 1125 = 1.00000 + 1129 = 1.00000 + 1126 = 1.00000 + 1130 = 1.00000 + 1127 = 1.00000 + 1131 = 1.00000 + 1128 = 1.00000 + 1132 = 1.00000 + 1173 = 1.00000 + 1174 = 1.00000 + 1175 = 1.00000 + 1176 = 1.00000 + 1177 = 1.00000 + 1178 = 1.00000 + 1179 = 1.00000 + 1180 = 1.00000 + 1181 = 1.00000 + 1183 = 1.00000 + 1184 = 1.00000 + 1185 = 1.00000 + 1187 = 1.00000 + 1189 = 1.00000 + 1186 = 1.00000 + 1188 = 1.00000 + 1190 = 1.00000 + 1191 = 1.00000 + 1193 = 1.00000 + 1195 = 1.00000 + 1192 = 1.00000 + 1194 = 1.00000 + 1196 = 1.00000 + 1197 = 1.00000 + 1199 = 1.00000 + 1198 = 1.00000 + 1200 = 1.00000 + 1205 = 1.00000 + 1207 = 1.00000 + 1206 = 1.00000 + 1208 = 1.00000 + 1209 = 1.00000 + 1213 = 1.00000 + 1210 = 1.00000 + 1214 = 1.00000 + 1221 = 1.00000 + 1223 = 1.00000 + 1225 = 1.00000 + 1222 = 1.00000 + 1224 = 1.00000 + 1226 = 1.00000 + 1229 = 1.00000 + 1231 = 1.00000 + 1230 = 1.00000 + 1232 = 1.00000 + 1237 = 1.00000 + 1241 = 1.00000 + 1238 = 1.00000 + 1242 = 1.00000 + 1239 = 1.00000 + 1243 = 1.00000 + 1240 = 1.00000 + 1244 = 1.00000 + 1245 = 1.00000 + 1253 = 1.00000 + 1246 = 1.00000 + 1254 = 1.00000 + 1247 = 1.00000 + 1255 = 1.00000 + 1248 = 1.00000 + 1256 = 1.00000 + 1269 = 1.00000 + 1273 = 1.00000 + 1270 = 1.00000 + 1274 = 1.00000 + 1271 = 1.00000 + 1275 = 1.00000 + 1272 = 1.00000 + 1276 = 1.00000 + 1317 = 1.00000 + 1318 = 1.00000 + 1323 = 1.00000 + 1325 = 1.00000 + 1324 = 1.00000 + 1326 = 1.00000 + 1329 = 1.00000 + 1331 = 1.00000 + 1330 = 1.00000 + 1332 = 1.00000 + 1377 = 1.00000 + 1381 = 1.00000 + 1378 = 1.00000 + 1382 = 1.00000 + 1379 = 1.00000 + 1383 = 1.00000 + 1380 = 1.00000 + 1384 = 1.00000 + 1425 = 1.00000 + 1426 = 1.00000 + 1427 = 1.00000 + 1429 = 1.00000 + 1430 = 1.00000 + 1431 = 1.00000 + 1433 = 1.00000 + 1435 = 1.00000 + 1432 = 1.00000 + 1434 = 1.00000 + 1436 = 1.00000 + 1437 = 1.00000 + 1439 = 1.00000 + 1438 = 1.00000 + 1440 = 1.00000 + 1445 = 1.00000 + 1447 = 1.00000 + 1446 = 1.00000 + 1448 = 1.00000 + 1457 = 1.00000 + 1459 = 1.00000 + 1458 = 1.00000 + 1460 = 1.00000 + 1465 = 1.00000 + 1469 = 1.00000 + 1466 = 1.00000 + 1470 = 1.00000 + 1467 = 1.00000 + 1471 = 1.00000 + 1468 = 1.00000 + 1472 = 1.00000 + 1485 = 1.00000 + 1489 = 1.00000 + 1486 = 1.00000 + 1490 = 1.00000 + 1487 = 1.00000 + 1491 = 1.00000 + 1488 = 1.00000 + 1492 = 1.00000 + 1533 = 1.00000 + 1535 = 1.00000 + 1545 = 1.00000 + 1549 = 1.00000 + 1546 = 1.00000 + 1550 = 1.00000 + 1557 = 1.00000 + 1561 = 1.00000 + 1558 = 1.00000 + 1562 = 1.00000 + 1581 = 1.00000 + 1589 = 1.00000 + 1582 = 1.00000 + 1590 = 1.00000 + 1583 = 1.00000 + 1591 = 1.00000 + 1584 = 1.00000 + 1592 = 1.00000 + 1641 = 1.00000 + 1642 = 1.00000 + 1643 = 1.00000 + 1645 = 1.00000 + 1646 = 1.00000 + 1649 = 1.00000 + 1651 = 1.00000 + 1650 = 1.00000 + 1652 = 1.00000 + 1653 = 1.00000 + 1657 = 1.00000 + 1654 = 1.00000 + 1658 = 1.00000 + 1665 = 1.00000 + 1667 = 1.00000 + 1669 = 1.00000 + 1666 = 1.00000 + 1668 = 1.00000 + 1670 = 1.00000 + 1673 = 1.00000 + 1675 = 1.00000 + 1674 = 1.00000 + 1676 = 1.00000 + 1681 = 1.00000 + 1685 = 1.00000 + 1682 = 1.00000 + 1686 = 1.00000 + 1683 = 1.00000 + 1687 = 1.00000 + 1684 = 1.00000 + 1688 = 1.00000 + 1689 = 1.00000 + 1697 = 1.00000 + 1690 = 1.00000 + 1698 = 1.00000 + 1691 = 1.00000 + 1699 = 1.00000 + 1692 = 1.00000 + 1700 = 1.00000 + 1831 = 1.00000 + 1832 = 1.00000 + 1835 = 1.00000 + 1837 = 1.00000 + 1836 = 1.00000 + 1838 = 1.00000 + 1847 = 1.00000 + 1849 = 1.00000 + 1848 = 1.00000 + 1850 = 1.00000 + 1855 = 1.00000 + 1859 = 1.00000 + 1856 = 1.00000 + 1860 = 1.00000 + 1857 = 1.00000 + 1861 = 1.00000 + 1858 = 1.00000 + 1862 = 1.00000 + 1911 = 1.00000 + 1912 = 1.00000 + 1913 = 1.00000 + 1914 = 1.00000 + 1915 = 1.00000 + 1918 = 1.00000 + 1919 = 1.00000 + 1923 = 1.00000 + 1925 = 1.00000 + 1927 = 1.00000 + 1924 = 1.00000 + 1926 = 1.00000 + 1928 = 1.00000 + 1929 = 1.00000 + 1931 = 1.00000 + 1930 = 1.00000 + 1932 = 1.00000 + 1935 = 1.00000 + 1937 = 1.00000 + 1936 = 1.00000 + 1938 = 1.00000 + 1943 = 1.00000 + 1945 = 1.00000 + 1944 = 1.00000 + 1946 = 1.00000 + 1961 = 1.00000 + 1963 = 1.00000 + 1962 = 1.00000 + 1964 = 1.00000 + 1975 = 1.00000 + 1979 = 1.00000 + 1976 = 1.00000 + 1980 = 1.00000 + 1977 = 1.00000 + 1981 = 1.00000 + 1978 = 1.00000 + 1982 = 1.00000 + 2007 = 1.00000 + 2011 = 1.00000 + 2008 = 1.00000 + 2012 = 1.00000 + 2009 = 1.00000 + 2013 = 1.00000 + 2010 = 1.00000 + 2014 = 1.00000 + 2055 = 1.00000 + 2056 = 1.00000 + 2061 = 1.00000 + 2063 = 1.00000 + 2062 = 1.00000 + 2064 = 1.00000 + 2067 = 1.00000 + 2069 = 1.00000 + 2068 = 1.00000 + 2070 = 1.00000 + 2115 = 1.00000 + 2119 = 1.00000 + 2116 = 1.00000 + 2120 = 1.00000 + 2117 = 1.00000 + 2121 = 1.00000 + 2118 = 1.00000 + 2122 = 1.00000 + 2163 = 1.00000 + 2164 = 1.00000 + 2165 = 1.00000 + 2166 = 1.00000 + 2167 = 1.00000 + 2168 = 1.00000 + 2169 = 1.00000 + 2170 = 1.00000 + 2171 = 1.00000 + 2172 = 1.00000 + 2174 = 1.00000 + 2175 = 1.00000 + 2177 = 1.00000 + 2179 = 1.00000 + 2176 = 1.00000 + 2178 = 1.00000 + 2180 = 1.00000 + 2181 = 1.00000 + 2183 = 1.00000 + 2182 = 1.00000 + 2184 = 1.00000 + 2187 = 1.00000 + 2189 = 1.00000 + 2191 = 1.00000 + 2188 = 1.00000 + 2190 = 1.00000 + 2192 = 1.00000 + 2195 = 1.00000 + 2197 = 1.00000 + 2196 = 1.00000 + 2198 = 1.00000 + 2205 = 1.00000 + 2209 = 1.00000 + 2206 = 1.00000 + 2210 = 1.00000 + 2211 = 1.00000 + 2213 = 1.00000 + 2215 = 1.00000 + 2212 = 1.00000 + 2214 = 1.00000 + 2216 = 1.00000 + 2217 = 1.00000 + 2221 = 1.00000 + 2218 = 1.00000 + 2222 = 1.00000 + 2227 = 1.00000 + 2231 = 1.00000 + 2228 = 1.00000 + 2232 = 1.00000 + 2229 = 1.00000 + 2233 = 1.00000 + 2230 = 1.00000 + 2234 = 1.00000 + 2247 = 1.00000 + 2255 = 1.00000 + 2248 = 1.00000 + 2256 = 1.00000 + 2249 = 1.00000 + 2257 = 1.00000 + 2250 = 1.00000 + 2258 = 1.00000 + 2259 = 1.00000 + 2263 = 1.00000 + 2260 = 1.00000 + 2264 = 1.00000 + 2261 = 1.00000 + 2265 = 1.00000 + 2262 = 1.00000 + 2266 = 1.00000 + 2307 = 1.00000 + 2308 = 1.00000 + 2309 = 1.00000 + 2310 = 1.00000 + 2312 = 1.00000 + 2313 = 1.00000 + 2315 = 1.00000 + 2314 = 1.00000 + 2316 = 1.00000 + 2319 = 1.00000 + 2321 = 1.00000 + 2323 = 1.00000 + 2320 = 1.00000 + 2322 = 1.00000 + 2324 = 1.00000 + 2331 = 1.00000 + 2335 = 1.00000 + 2332 = 1.00000 + 2336 = 1.00000 + 2337 = 1.00000 + 2341 = 1.00000 + 2338 = 1.00000 + 2342 = 1.00000 + 2355 = 1.00000 + 2363 = 1.00000 + 2356 = 1.00000 + 2364 = 1.00000 + 2357 = 1.00000 + 2365 = 1.00000 + 2358 = 1.00000 + 2366 = 1.00000 + 2367 = 1.00000 + 2371 = 1.00000 + 2368 = 1.00000 + 2372 = 1.00000 + 2369 = 1.00000 + 2373 = 1.00000 + 2370 = 1.00000 + 2374 = 1.00000 + 2416 = 1.00000 + 2417 = 1.00000 + 2423 = 1.00000 + 2425 = 1.00000 + 2424 = 1.00000 + 2426 = 1.00000 + 2441 = 1.00000 + 2443 = 1.00000 + 2442 = 1.00000 + 2444 = 1.00000 + 2455 = 1.00000 + 2459 = 1.00000 + 2456 = 1.00000 + 2460 = 1.00000 + 2457 = 1.00000 + 2461 = 1.00000 + 2458 = 1.00000 + 2462 = 1.00000 + 2604 = 1.00000 + 2605 = 1.00000 + 2606 = 1.00000 + 2607 = 1.00000 + 2609 = 1.00000 + 2612 = 1.00000 + 2614 = 1.00000 + 2613 = 1.00000 + 2615 = 1.00000 + 2622 = 1.00000 + 2626 = 1.00000 + 2623 = 1.00000 + 2627 = 1.00000 + 2628 = 1.00000 + 2630 = 1.00000 + 2632 = 1.00000 + 2629 = 1.00000 + 2631 = 1.00000 + 2633 = 1.00000 + 2634 = 1.00000 + 2638 = 1.00000 + 2635 = 1.00000 + 2639 = 1.00000 + 2644 = 1.00000 + 2648 = 1.00000 + 2645 = 1.00000 + 2649 = 1.00000 + 2646 = 1.00000 + 2650 = 1.00000 + 2647 = 1.00000 + 2651 = 1.00000 + 2664 = 1.00000 + 2672 = 1.00000 + 2665 = 1.00000 + 2673 = 1.00000 + 2666 = 1.00000 + 2674 = 1.00000 + 2667 = 1.00000 + 2675 = 1.00000 + 2712 = 1.00000 + 2714 = 1.00000 + 2721 = 1.00000 + 2725 = 1.00000 + 2722 = 1.00000 + 2726 = 1.00000 + 2727 = 1.00000 + 2731 = 1.00000 + 2728 = 1.00000 + 2732 = 1.00000 + 2745 = 1.00000 + 2753 = 1.00000 + 2746 = 1.00000 + 2754 = 1.00000 + 2747 = 1.00000 + 2755 = 1.00000 + 2748 = 1.00000 + 2756 = 1.00000 + 2793 = 1.00000 + 2794 = 1.00000 + 2799 = 1.00000 + 2801 = 1.00000 + 2800 = 1.00000 + 2802 = 1.00000 + 2805 = 1.00000 + 2807 = 1.00000 + 2806 = 1.00000 + 2808 = 1.00000 + 2853 = 1.00000 + 2857 = 1.00000 + 2854 = 1.00000 + 2858 = 1.00000 + 2855 = 1.00000 + 2859 = 1.00000 + 2856 = 1.00000 + 2860 = 1.00000 + 2901 = 1.00000 + 2902 = 1.00000 + 2903 = 1.00000 + 2905 = 1.00000 + 2906 = 1.00000 + 2907 = 1.00000 + 2909 = 1.00000 + 2911 = 1.00000 + 2908 = 1.00000 + 2910 = 1.00000 + 2912 = 1.00000 + 2913 = 1.00000 + 2915 = 1.00000 + 2914 = 1.00000 + 2916 = 1.00000 + 2921 = 1.00000 + 2923 = 1.00000 + 2922 = 1.00000 + 2924 = 1.00000 + 2933 = 1.00000 + 2935 = 1.00000 + 2934 = 1.00000 + 2936 = 1.00000 + 2941 = 1.00000 + 2945 = 1.00000 + 2942 = 1.00000 + 2946 = 1.00000 + 2943 = 1.00000 + 2947 = 1.00000 + 2944 = 1.00000 + 2948 = 1.00000 + 2961 = 1.00000 + 2965 = 1.00000 + 2962 = 1.00000 + 2966 = 1.00000 + 2963 = 1.00000 + 2967 = 1.00000 + 2964 = 1.00000 + 2968 = 1.00000 + 3009 = 1.00000 + 3010 = 1.00000 + 3011 = 1.00000 + 3012 = 1.00000 + 3014 = 1.00000 + 3015 = 1.00000 + 3017 = 1.00000 + 3016 = 1.00000 + 3018 = 1.00000 + 3021 = 1.00000 + 3023 = 1.00000 + 3025 = 1.00000 + 3022 = 1.00000 + 3024 = 1.00000 + 3026 = 1.00000 + 3033 = 1.00000 + 3037 = 1.00000 + 3034 = 1.00000 + 3038 = 1.00000 + 3039 = 1.00000 + 3043 = 1.00000 + 3040 = 1.00000 + 3044 = 1.00000 + 3057 = 1.00000 + 3065 = 1.00000 + 3058 = 1.00000 + 3066 = 1.00000 + 3059 = 1.00000 + 3067 = 1.00000 + 3060 = 1.00000 + 3068 = 1.00000 + 3069 = 1.00000 + 3073 = 1.00000 + 3070 = 1.00000 + 3074 = 1.00000 + 3071 = 1.00000 + 3075 = 1.00000 + 3072 = 1.00000 + 3076 = 1.00000 + 3117 = 1.00000 + 3118 = 1.00000 + 3119 = 1.00000 + 3120 = 1.00000 + 3121 = 1.00000 + 3122 = 1.00000 + 3123 = 1.00000 + 3125 = 1.00000 + 3127 = 1.00000 + 3124 = 1.00000 + 3126 = 1.00000 + 3128 = 1.00000 + 3129 = 1.00000 + 3131 = 1.00000 + 3133 = 1.00000 + 3130 = 1.00000 + 3132 = 1.00000 + 3134 = 1.00000 + 3137 = 1.00000 + 3139 = 1.00000 + 3138 = 1.00000 + 3140 = 1.00000 + 3141 = 1.00000 + 3145 = 1.00000 + 3142 = 1.00000 + 3146 = 1.00000 + 3147 = 1.00000 + 3149 = 1.00000 + 3151 = 1.00000 + 3148 = 1.00000 + 3150 = 1.00000 + 3152 = 1.00000 + 3157 = 1.00000 + 3161 = 1.00000 + 3158 = 1.00000 + 3162 = 1.00000 + 3159 = 1.00000 + 3163 = 1.00000 + 3160 = 1.00000 + 3164 = 1.00000 + 3165 = 1.00000 + 3173 = 1.00000 + 3166 = 1.00000 + 3174 = 1.00000 + 3167 = 1.00000 + 3175 = 1.00000 + 3168 = 1.00000 + 3176 = 1.00000 + 3177 = 1.00000 + 3181 = 1.00000 + 3178 = 1.00000 + 3182 = 1.00000 + 3179 = 1.00000 + 3183 = 1.00000 + 3180 = 1.00000 + 3184 = 1.00000 + 3307 = 1.00000 + 3308 = 1.00000 + 3311 = 1.00000 + 3313 = 1.00000 + 3312 = 1.00000 + 3314 = 1.00000 + 3323 = 1.00000 + 3325 = 1.00000 + 3324 = 1.00000 + 3326 = 1.00000 + 3331 = 1.00000 + 3335 = 1.00000 + 3332 = 1.00000 + 3336 = 1.00000 + 3333 = 1.00000 + 3337 = 1.00000 + 3334 = 1.00000 + 3338 = 1.00000 + 3387 = 1.00000 + 3389 = 1.00000 + 3396 = 1.00000 + 3400 = 1.00000 + 3397 = 1.00000 + 3401 = 1.00000 + 3402 = 1.00000 + 3406 = 1.00000 + 3403 = 1.00000 + 3407 = 1.00000 + 3420 = 1.00000 + 3428 = 1.00000 + 3421 = 1.00000 + 3429 = 1.00000 + 3422 = 1.00000 + 3430 = 1.00000 + 3423 = 1.00000 + 3431 = 1.00000 + 3468 = 1.00000 + 3469 = 1.00000 + 3470 = 1.00000 + 3473 = 1.00000 + 3475 = 1.00000 + 3474 = 1.00000 + 3476 = 1.00000 + 3477 = 1.00000 + 3481 = 1.00000 + 3478 = 1.00000 + 3482 = 1.00000 + 3483 = 1.00000 + 3485 = 1.00000 + 3487 = 1.00000 + 3484 = 1.00000 + 3486 = 1.00000 + 3488 = 1.00000 + 3493 = 1.00000 + 3497 = 1.00000 + 3494 = 1.00000 + 3498 = 1.00000 + 3495 = 1.00000 + 3499 = 1.00000 + 3496 = 1.00000 + 3500 = 1.00000 + 3501 = 1.00000 + 3509 = 1.00000 + 3502 = 1.00000 + 3510 = 1.00000 + 3503 = 1.00000 + 3511 = 1.00000 + 3504 = 1.00000 + 3512 = 1.00000 + 3549 = 1.00000 + 3550 = 1.00000 + 3551 = 1.00000 + 3552 = 1.00000 + 3554 = 1.00000 + 3556 = 1.00000 + 3557 = 1.00000 + 3563 = 1.00000 + 3565 = 1.00000 + 3564 = 1.00000 + 3566 = 1.00000 + 3573 = 1.00000 + 3577 = 1.00000 + 3574 = 1.00000 + 3578 = 1.00000 + 3585 = 1.00000 + 3587 = 1.00000 + 3589 = 1.00000 + 3586 = 1.00000 + 3588 = 1.00000 + 3590 = 1.00000 + 3591 = 1.00000 + 3595 = 1.00000 + 3592 = 1.00000 + 3596 = 1.00000 + 3599 = 1.00000 + 3601 = 1.00000 + 3600 = 1.00000 + 3602 = 1.00000 + 3613 = 1.00000 + 3617 = 1.00000 + 3614 = 1.00000 + 3618 = 1.00000 + 3615 = 1.00000 + 3619 = 1.00000 + 3616 = 1.00000 + 3620 = 1.00000 + 3633 = 1.00000 + 3641 = 1.00000 + 3634 = 1.00000 + 3642 = 1.00000 + 3635 = 1.00000 + 3643 = 1.00000 + 3636 = 1.00000 + 3644 = 1.00000 + 3693 = 1.00000 + 3695 = 1.00000 + 3705 = 1.00000 + 3709 = 1.00000 + 3706 = 1.00000 + 3710 = 1.00000 + 3717 = 1.00000 + 3721 = 1.00000 + 3718 = 1.00000 + 3722 = 1.00000 + 3741 = 1.00000 + 3749 = 1.00000 + 3742 = 1.00000 + 3750 = 1.00000 + 3743 = 1.00000 + 3751 = 1.00000 + 3744 = 1.00000 + 3752 = 1.00000 + 3802 = 1.00000 + 3803 = 1.00000 + 3809 = 1.00000 + 3811 = 1.00000 + 3810 = 1.00000 + 3812 = 1.00000 + 3827 = 1.00000 + 3829 = 1.00000 + 3828 = 1.00000 + 3830 = 1.00000 + 3841 = 1.00000 + 3845 = 1.00000 + 3842 = 1.00000 + 3846 = 1.00000 + 3843 = 1.00000 + 3847 = 1.00000 + 3844 = 1.00000 + 3848 = 1.00000 + 3990 = 1.00000 + 3991 = 1.00000 + 3992 = 1.00000 + 3993 = 1.00000 + 3995 = 1.00000 + 3997 = 1.00000 + 3998 = 1.00000 + 4004 = 1.00000 + 4006 = 1.00000 + 4005 = 1.00000 + 4007 = 1.00000 + 4014 = 1.00000 + 4018 = 1.00000 + 4015 = 1.00000 + 4019 = 1.00000 + 4026 = 1.00000 + 4028 = 1.00000 + 4030 = 1.00000 + 4027 = 1.00000 + 4029 = 1.00000 + 4031 = 1.00000 + 4032 = 1.00000 + 4036 = 1.00000 + 4033 = 1.00000 + 4037 = 1.00000 + 4040 = 1.00000 + 4042 = 1.00000 + 4041 = 1.00000 + 4043 = 1.00000 + 4054 = 1.00000 + 4058 = 1.00000 + 4055 = 1.00000 + 4059 = 1.00000 + 4056 = 1.00000 + 4060 = 1.00000 + 4057 = 1.00000 + 4061 = 1.00000 + 4074 = 1.00000 + 4082 = 1.00000 + 4075 = 1.00000 + 4083 = 1.00000 + 4076 = 1.00000 + 4084 = 1.00000 + 4077 = 1.00000 + 4085 = 1.00000 + 4134 = 1.00000 + 4136 = 1.00000 + 4146 = 1.00000 + 4150 = 1.00000 + 4147 = 1.00000 + 4151 = 1.00000 + 4158 = 1.00000 + 4162 = 1.00000 + 4159 = 1.00000 + 4163 = 1.00000 + 4182 = 1.00000 + 4190 = 1.00000 + 4183 = 1.00000 + 4191 = 1.00000 + 4184 = 1.00000 + 4192 = 1.00000 + 4185 = 1.00000 + 4193 = 1.00000 + 4243 = 1.00000 + 4244 = 1.00000 + 4250 = 1.00000 + 4252 = 1.00000 + 4251 = 1.00000 + 4253 = 1.00000 + 4268 = 1.00000 + 4270 = 1.00000 + 4269 = 1.00000 + 4271 = 1.00000 + 4282 = 1.00000 + 4286 = 1.00000 + 4283 = 1.00000 + 4287 = 1.00000 + 4284 = 1.00000 + 4288 = 1.00000 + 4285 = 1.00000 + 4289 = 1.00000 + 4431 = 1.00000 + 4433 = 1.00000 + 4443 = 1.00000 + 4447 = 1.00000 + 4444 = 1.00000 + 4448 = 1.00000 + 4455 = 1.00000 + 4459 = 1.00000 + 4456 = 1.00000 + 4460 = 1.00000 + 4479 = 1.00000 + 4487 = 1.00000 + 4480 = 1.00000 + 4488 = 1.00000 + 4481 = 1.00000 + 4489 = 1.00000 + 4482 = 1.00000 + 4490 = 1.00000 + 4539 = 1.00000 + 4540 = 1.00000 + 4541 = 1.00000 + 4543 = 1.00000 + 4544 = 1.00000 + 4547 = 1.00000 + 4549 = 1.00000 + 4548 = 1.00000 + 4550 = 1.00000 + 4551 = 1.00000 + 4555 = 1.00000 + 4552 = 1.00000 + 4556 = 1.00000 + 4563 = 1.00000 + 4565 = 1.00000 + 4567 = 1.00000 + 4564 = 1.00000 + 4566 = 1.00000 + 4568 = 1.00000 + 4571 = 1.00000 + 4573 = 1.00000 + 4572 = 1.00000 + 4574 = 1.00000 + 4579 = 1.00000 + 4583 = 1.00000 + 4580 = 1.00000 + 4584 = 1.00000 + 4581 = 1.00000 + 4585 = 1.00000 + 4582 = 1.00000 + 4586 = 1.00000 + 4587 = 1.00000 + 4595 = 1.00000 + 4588 = 1.00000 + 4596 = 1.00000 + 4589 = 1.00000 + 4597 = 1.00000 + 4590 = 1.00000 + 4598 = 1.00000 + 4729 = 1.00000 + 4730 = 1.00000 + 4733 = 1.00000 + 4735 = 1.00000 + 4734 = 1.00000 + 4736 = 1.00000 + 4745 = 1.00000 + 4747 = 1.00000 + 4746 = 1.00000 + 4748 = 1.00000 + 4753 = 1.00000 + 4757 = 1.00000 + 4754 = 1.00000 + 4758 = 1.00000 + 4755 = 1.00000 + 4759 = 1.00000 + 4756 = 1.00000 + 4760 = 1.00000 + 4809 = 1.00000 + 4811 = 1.00000 + 4821 = 1.00000 + 4825 = 1.00000 + 4822 = 1.00000 + 4826 = 1.00000 + 4833 = 1.00000 + 4837 = 1.00000 + 4834 = 1.00000 + 4838 = 1.00000 + 4857 = 1.00000 + 4865 = 1.00000 + 4858 = 1.00000 + 4866 = 1.00000 + 4859 = 1.00000 + 4867 = 1.00000 + 4860 = 1.00000 + 4868 = 1.00000 + 4917 = 1.00000 + 4918 = 1.00000 + 4919 = 1.00000 + 4921 = 1.00000 + 4922 = 1.00000 + 4925 = 1.00000 + 4927 = 1.00000 + 4926 = 1.00000 + 4928 = 1.00000 + 4929 = 1.00000 + 4933 = 1.00000 + 4930 = 1.00000 + 4934 = 1.00000 + 4941 = 1.00000 + 4943 = 1.00000 + 4945 = 1.00000 + 4942 = 1.00000 + 4944 = 1.00000 + 4946 = 1.00000 + 4949 = 1.00000 + 4951 = 1.00000 + 4950 = 1.00000 + 4952 = 1.00000 + 4957 = 1.00000 + 4961 = 1.00000 + 4958 = 1.00000 + 4962 = 1.00000 + 4959 = 1.00000 + 4963 = 1.00000 + 4960 = 1.00000 + 4964 = 1.00000 + 4965 = 1.00000 + 4973 = 1.00000 + 4966 = 1.00000 + 4974 = 1.00000 + 4967 = 1.00000 + 4975 = 1.00000 + 4968 = 1.00000 + 4976 = 1.00000 + 5107 = 1.00000 + 5108 = 1.00000 + 5111 = 1.00000 + 5113 = 1.00000 + 5112 = 1.00000 + 5114 = 1.00000 + 5123 = 1.00000 + 5125 = 1.00000 + 5124 = 1.00000 + 5126 = 1.00000 + 5131 = 1.00000 + 5135 = 1.00000 + 5132 = 1.00000 + 5136 = 1.00000 + 5133 = 1.00000 + 5137 = 1.00000 + 5134 = 1.00000 + 5138 = 1.00000 + 5188 = 1.00000 + 5189 = 1.00000 + 5195 = 1.00000 + 5197 = 1.00000 + 5196 = 1.00000 + 5198 = 1.00000 + 5213 = 1.00000 + 5215 = 1.00000 + 5214 = 1.00000 + 5216 = 1.00000 + 5227 = 1.00000 + 5231 = 1.00000 + 5228 = 1.00000 + 5232 = 1.00000 + 5229 = 1.00000 + 5233 = 1.00000 + 5230 = 1.00000 + 5234 = 1.00000 + 5376 = 1.00000 + 5377 = 1.00000 + 5378 = 1.00000 + 5379 = 1.00000 + 5381 = 1.00000 + 5384 = 1.00000 + 5386 = 1.00000 + 5385 = 1.00000 + 5387 = 1.00000 + 5394 = 1.00000 + 5398 = 1.00000 + 5395 = 1.00000 + 5399 = 1.00000 + 5400 = 1.00000 + 5402 = 1.00000 + 5404 = 1.00000 + 5401 = 1.00000 + 5403 = 1.00000 + 5405 = 1.00000 + 5406 = 1.00000 + 5410 = 1.00000 + 5407 = 1.00000 + 5411 = 1.00000 + 5416 = 1.00000 + 5420 = 1.00000 + 5417 = 1.00000 + 5421 = 1.00000 + 5418 = 1.00000 + 5422 = 1.00000 + 5419 = 1.00000 + 5423 = 1.00000 + 5436 = 1.00000 + 5444 = 1.00000 + 5437 = 1.00000 + 5445 = 1.00000 + 5438 = 1.00000 + 5446 = 1.00000 + 5439 = 1.00000 + 5447 = 1.00000 + 5484 = 1.00000 + 5486 = 1.00000 + 5493 = 1.00000 + 5497 = 1.00000 + 5494 = 1.00000 + 5498 = 1.00000 + 5499 = 1.00000 + 5503 = 1.00000 + 5500 = 1.00000 + 5504 = 1.00000 + 5517 = 1.00000 + 5525 = 1.00000 + 5518 = 1.00000 + 5526 = 1.00000 + 5519 = 1.00000 + 5527 = 1.00000 + 5520 = 1.00000 + 5528 = 1.00000 + 5566 = 1.00000 + 5567 = 1.00000 + 5573 = 1.00000 + 5575 = 1.00000 + 5574 = 1.00000 + 5576 = 1.00000 + 5591 = 1.00000 + 5593 = 1.00000 + 5592 = 1.00000 + 5594 = 1.00000 + 5605 = 1.00000 + 5609 = 1.00000 + 5606 = 1.00000 + 5610 = 1.00000 + 5607 = 1.00000 + 5611 = 1.00000 + 5608 = 1.00000 + 5612 = 1.00000 + 5754 = 1.00000 + 5755 = 1.00000 + 5756 = 1.00000 + 5757 = 1.00000 + 5759 = 1.00000 + 5762 = 1.00000 + 5764 = 1.00000 + 5763 = 1.00000 + 5765 = 1.00000 + 5772 = 1.00000 + 5776 = 1.00000 + 5773 = 1.00000 + 5777 = 1.00000 + 5778 = 1.00000 + 5780 = 1.00000 + 5782 = 1.00000 + 5779 = 1.00000 + 5781 = 1.00000 + 5783 = 1.00000 + 5784 = 1.00000 + 5788 = 1.00000 + 5785 = 1.00000 + 5789 = 1.00000 + 5794 = 1.00000 + 5798 = 1.00000 + 5795 = 1.00000 + 5799 = 1.00000 + 5796 = 1.00000 + 5800 = 1.00000 + 5797 = 1.00000 + 5801 = 1.00000 + 5814 = 1.00000 + 5822 = 1.00000 + 5815 = 1.00000 + 5823 = 1.00000 + 5816 = 1.00000 + 5824 = 1.00000 + 5817 = 1.00000 + 5825 = 1.00000 + 5862 = 1.00000 + 5864 = 1.00000 + 5871 = 1.00000 + 5875 = 1.00000 + 5872 = 1.00000 + 5876 = 1.00000 + 5877 = 1.00000 + 5881 = 1.00000 + 5878 = 1.00000 + 5882 = 1.00000 + 5895 = 1.00000 + 5903 = 1.00000 + 5896 = 1.00000 + 5904 = 1.00000 + 5897 = 1.00000 + 5905 = 1.00000 + 5898 = 1.00000 + 5906 = 1.00000 + 6025 = 1.00000 + 6026 = 1.00000 + 6029 = 1.00000 + 6031 = 1.00000 + 6030 = 1.00000 + 6032 = 1.00000 + 6041 = 1.00000 + 6043 = 1.00000 + 6042 = 1.00000 + 6044 = 1.00000 + 6049 = 1.00000 + 6053 = 1.00000 + 6050 = 1.00000 + 6054 = 1.00000 + 6051 = 1.00000 + 6055 = 1.00000 + 6052 = 1.00000 + 6056 = 1.00000 + 6105 = 1.00000 + 6107 = 1.00000 + 6114 = 1.00000 + 6118 = 1.00000 + 6115 = 1.00000 + 6119 = 1.00000 + 6120 = 1.00000 + 6124 = 1.00000 + 6121 = 1.00000 + 6125 = 1.00000 + 6138 = 1.00000 + 6146 = 1.00000 + 6139 = 1.00000 + 6147 = 1.00000 + 6140 = 1.00000 + 6148 = 1.00000 + 6141 = 1.00000 + 6149 = 1.00000 + 6186 = 1.00000 + 6187 = 1.00000 + 6188 = 1.00000 + 6191 = 1.00000 + 6193 = 1.00000 + 6192 = 1.00000 + 6194 = 1.00000 + 6195 = 1.00000 + 6199 = 1.00000 + 6196 = 1.00000 + 6200 = 1.00000 + 6201 = 1.00000 + 6203 = 1.00000 + 6205 = 1.00000 + 6202 = 1.00000 + 6204 = 1.00000 + 6206 = 1.00000 + 6211 = 1.00000 + 6215 = 1.00000 + 6212 = 1.00000 + 6216 = 1.00000 + 6213 = 1.00000 + 6217 = 1.00000 + 6214 = 1.00000 + 6218 = 1.00000 + 6219 = 1.00000 + 6227 = 1.00000 + 6220 = 1.00000 + 6228 = 1.00000 + 6221 = 1.00000 + 6229 = 1.00000 + 6222 = 1.00000 + 6230 = 1.00000 + 6349 = 1.00000 + 6350 = 1.00000 + 6353 = 1.00000 + 6355 = 1.00000 + 6354 = 1.00000 + 6356 = 1.00000 + 6365 = 1.00000 + 6367 = 1.00000 + 6366 = 1.00000 + 6368 = 1.00000 + 6373 = 1.00000 + 6377 = 1.00000 + 6374 = 1.00000 + 6378 = 1.00000 + 6375 = 1.00000 + 6379 = 1.00000 + 6376 = 1.00000 + 6380 = 1.00000 + 6429 = 1.00000 + 6431 = 1.00000 + 6438 = 1.00000 + 6442 = 1.00000 + 6439 = 1.00000 + 6443 = 1.00000 + 6444 = 1.00000 + 6448 = 1.00000 + 6445 = 1.00000 + 6449 = 1.00000 + 6462 = 1.00000 + 6470 = 1.00000 + 6463 = 1.00000 + 6471 = 1.00000 + 6464 = 1.00000 + 6472 = 1.00000 + 6465 = 1.00000 + 6473 = 1.00000 + 6510 = 1.00000 + 6511 = 1.00000 + 6512 = 1.00000 + 6515 = 1.00000 + 6517 = 1.00000 + 6516 = 1.00000 + 6518 = 1.00000 + 6519 = 1.00000 + 6523 = 1.00000 + 6520 = 1.00000 + 6524 = 1.00000 + 6525 = 1.00000 + 6527 = 1.00000 + 6529 = 1.00000 + 6526 = 1.00000 + 6528 = 1.00000 + 6530 = 1.00000 + 6535 = 1.00000 + 6539 = 1.00000 + 6536 = 1.00000 + 6540 = 1.00000 + 6537 = 1.00000 + 6541 = 1.00000 + 6538 = 1.00000 + 6542 = 1.00000 + 6543 = 1.00000 + 6551 = 1.00000 + 6544 = 1.00000 + 6552 = 1.00000 + 6545 = 1.00000 + 6553 = 1.00000 + 6546 = 1.00000 + 6554 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=5 + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 3 = 1.00000 + 4 = 1.00000 + 5 = 1.00000 + 6 = 1.00000 + 7 = 1.00000 + 8 = 1.00000 + 9 = 1.00000 + 10 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 14 = 1.00000 + 15 = 1.00000 + 17 = 1.00000 + 19 = 1.00000 + 20 = 1.00000 + 24 = 1.00000 + 26 = 1.00000 + 28 = 1.00000 + 25 = 1.00000 + 27 = 1.00000 + 29 = 1.00000 + 30 = 1.00000 + 32 = 1.00000 + 31 = 1.00000 + 33 = 1.00000 + 36 = 1.00000 + 38 = 1.00000 + 40 = 1.00000 + 37 = 1.00000 + 39 = 1.00000 + 41 = 1.00000 + 42 = 1.00000 + 44 = 1.00000 + 43 = 1.00000 + 45 = 1.00000 + 50 = 1.00000 + 52 = 1.00000 + 51 = 1.00000 + 53 = 1.00000 + 60 = 1.00000 + 64 = 1.00000 + 61 = 1.00000 + 65 = 1.00000 + 72 = 1.00000 + 74 = 1.00000 + 76 = 1.00000 + 73 = 1.00000 + 75 = 1.00000 + 77 = 1.00000 + 78 = 1.00000 + 82 = 1.00000 + 79 = 1.00000 + 83 = 1.00000 + 86 = 1.00000 + 88 = 1.00000 + 87 = 1.00000 + 89 = 1.00000 + 100 = 1.00000 + 104 = 1.00000 + 101 = 1.00000 + 105 = 1.00000 + 102 = 1.00000 + 106 = 1.00000 + 103 = 1.00000 + 107 = 1.00000 + 120 = 1.00000 + 128 = 1.00000 + 121 = 1.00000 + 129 = 1.00000 + 122 = 1.00000 + 130 = 1.00000 + 123 = 1.00000 + 131 = 1.00000 + 144 = 1.00000 + 148 = 1.00000 + 145 = 1.00000 + 149 = 1.00000 + 146 = 1.00000 + 150 = 1.00000 + 147 = 1.00000 + 151 = 1.00000 + 192 = 1.00000 + 193 = 1.00000 + 194 = 1.00000 + 195 = 1.00000 + 196 = 1.00000 + 198 = 1.00000 + 200 = 1.00000 + 204 = 1.00000 + 206 = 1.00000 + 205 = 1.00000 + 207 = 1.00000 + 210 = 1.00000 + 212 = 1.00000 + 214 = 1.00000 + 211 = 1.00000 + 213 = 1.00000 + 215 = 1.00000 + 216 = 1.00000 + 218 = 1.00000 + 217 = 1.00000 + 219 = 1.00000 + 228 = 1.00000 + 232 = 1.00000 + 229 = 1.00000 + 233 = 1.00000 + 240 = 1.00000 + 244 = 1.00000 + 241 = 1.00000 + 245 = 1.00000 + 264 = 1.00000 + 272 = 1.00000 + 265 = 1.00000 + 273 = 1.00000 + 266 = 1.00000 + 274 = 1.00000 + 267 = 1.00000 + 275 = 1.00000 + 288 = 1.00000 + 292 = 1.00000 + 289 = 1.00000 + 293 = 1.00000 + 290 = 1.00000 + 294 = 1.00000 + 291 = 1.00000 + 295 = 1.00000 + 336 = 1.00000 + 337 = 1.00000 + 338 = 1.00000 + 339 = 1.00000 + 340 = 1.00000 + 343 = 1.00000 + 344 = 1.00000 + 348 = 1.00000 + 350 = 1.00000 + 352 = 1.00000 + 349 = 1.00000 + 351 = 1.00000 + 353 = 1.00000 + 354 = 1.00000 + 356 = 1.00000 + 355 = 1.00000 + 357 = 1.00000 + 360 = 1.00000 + 362 = 1.00000 + 361 = 1.00000 + 363 = 1.00000 + 368 = 1.00000 + 370 = 1.00000 + 369 = 1.00000 + 371 = 1.00000 + 386 = 1.00000 + 388 = 1.00000 + 387 = 1.00000 + 389 = 1.00000 + 400 = 1.00000 + 404 = 1.00000 + 401 = 1.00000 + 405 = 1.00000 + 402 = 1.00000 + 406 = 1.00000 + 403 = 1.00000 + 407 = 1.00000 + 432 = 1.00000 + 436 = 1.00000 + 433 = 1.00000 + 437 = 1.00000 + 434 = 1.00000 + 438 = 1.00000 + 435 = 1.00000 + 439 = 1.00000 + 480 = 1.00000 + 481 = 1.00000 + 486 = 1.00000 + 488 = 1.00000 + 487 = 1.00000 + 489 = 1.00000 + 492 = 1.00000 + 494 = 1.00000 + 493 = 1.00000 + 495 = 1.00000 + 540 = 1.00000 + 544 = 1.00000 + 541 = 1.00000 + 545 = 1.00000 + 542 = 1.00000 + 546 = 1.00000 + 543 = 1.00000 + 547 = 1.00000 + 588 = 1.00000 + 589 = 1.00000 + 590 = 1.00000 + 591 = 1.00000 + 593 = 1.00000 + 595 = 1.00000 + 596 = 1.00000 + 602 = 1.00000 + 604 = 1.00000 + 603 = 1.00000 + 605 = 1.00000 + 612 = 1.00000 + 616 = 1.00000 + 613 = 1.00000 + 617 = 1.00000 + 624 = 1.00000 + 626 = 1.00000 + 628 = 1.00000 + 625 = 1.00000 + 627 = 1.00000 + 629 = 1.00000 + 630 = 1.00000 + 634 = 1.00000 + 631 = 1.00000 + 635 = 1.00000 + 638 = 1.00000 + 640 = 1.00000 + 639 = 1.00000 + 641 = 1.00000 + 652 = 1.00000 + 656 = 1.00000 + 653 = 1.00000 + 657 = 1.00000 + 654 = 1.00000 + 658 = 1.00000 + 655 = 1.00000 + 659 = 1.00000 + 672 = 1.00000 + 680 = 1.00000 + 673 = 1.00000 + 681 = 1.00000 + 674 = 1.00000 + 682 = 1.00000 + 675 = 1.00000 + 683 = 1.00000 + 732 = 1.00000 + 734 = 1.00000 + 744 = 1.00000 + 748 = 1.00000 + 745 = 1.00000 + 749 = 1.00000 + 756 = 1.00000 + 760 = 1.00000 + 757 = 1.00000 + 761 = 1.00000 + 780 = 1.00000 + 788 = 1.00000 + 781 = 1.00000 + 789 = 1.00000 + 782 = 1.00000 + 790 = 1.00000 + 783 = 1.00000 + 791 = 1.00000 + 841 = 1.00000 + 842 = 1.00000 + 848 = 1.00000 + 850 = 1.00000 + 849 = 1.00000 + 851 = 1.00000 + 866 = 1.00000 + 868 = 1.00000 + 867 = 1.00000 + 869 = 1.00000 + 880 = 1.00000 + 884 = 1.00000 + 881 = 1.00000 + 885 = 1.00000 + 882 = 1.00000 + 886 = 1.00000 + 883 = 1.00000 + 887 = 1.00000 + 1029 = 1.00000 + 1030 = 1.00000 + 1031 = 1.00000 + 1032 = 1.00000 + 1033 = 1.00000 + 1035 = 1.00000 + 1037 = 1.00000 + 1041 = 1.00000 + 1043 = 1.00000 + 1042 = 1.00000 + 1044 = 1.00000 + 1047 = 1.00000 + 1049 = 1.00000 + 1051 = 1.00000 + 1048 = 1.00000 + 1050 = 1.00000 + 1052 = 1.00000 + 1053 = 1.00000 + 1055 = 1.00000 + 1054 = 1.00000 + 1056 = 1.00000 + 1065 = 1.00000 + 1069 = 1.00000 + 1066 = 1.00000 + 1070 = 1.00000 + 1077 = 1.00000 + 1081 = 1.00000 + 1078 = 1.00000 + 1082 = 1.00000 + 1101 = 1.00000 + 1109 = 1.00000 + 1102 = 1.00000 + 1110 = 1.00000 + 1103 = 1.00000 + 1111 = 1.00000 + 1104 = 1.00000 + 1112 = 1.00000 + 1125 = 1.00000 + 1129 = 1.00000 + 1126 = 1.00000 + 1130 = 1.00000 + 1127 = 1.00000 + 1131 = 1.00000 + 1128 = 1.00000 + 1132 = 1.00000 + 1173 = 1.00000 + 1174 = 1.00000 + 1175 = 1.00000 + 1176 = 1.00000 + 1177 = 1.00000 + 1178 = 1.00000 + 1179 = 1.00000 + 1180 = 1.00000 + 1181 = 1.00000 + 1183 = 1.00000 + 1184 = 1.00000 + 1185 = 1.00000 + 1187 = 1.00000 + 1189 = 1.00000 + 1186 = 1.00000 + 1188 = 1.00000 + 1190 = 1.00000 + 1191 = 1.00000 + 1193 = 1.00000 + 1195 = 1.00000 + 1192 = 1.00000 + 1194 = 1.00000 + 1196 = 1.00000 + 1197 = 1.00000 + 1199 = 1.00000 + 1198 = 1.00000 + 1200 = 1.00000 + 1205 = 1.00000 + 1207 = 1.00000 + 1206 = 1.00000 + 1208 = 1.00000 + 1209 = 1.00000 + 1213 = 1.00000 + 1210 = 1.00000 + 1214 = 1.00000 + 1221 = 1.00000 + 1223 = 1.00000 + 1225 = 1.00000 + 1222 = 1.00000 + 1224 = 1.00000 + 1226 = 1.00000 + 1229 = 1.00000 + 1231 = 1.00000 + 1230 = 1.00000 + 1232 = 1.00000 + 1237 = 1.00000 + 1241 = 1.00000 + 1238 = 1.00000 + 1242 = 1.00000 + 1239 = 1.00000 + 1243 = 1.00000 + 1240 = 1.00000 + 1244 = 1.00000 + 1245 = 1.00000 + 1253 = 1.00000 + 1246 = 1.00000 + 1254 = 1.00000 + 1247 = 1.00000 + 1255 = 1.00000 + 1248 = 1.00000 + 1256 = 1.00000 + 1269 = 1.00000 + 1273 = 1.00000 + 1270 = 1.00000 + 1274 = 1.00000 + 1271 = 1.00000 + 1275 = 1.00000 + 1272 = 1.00000 + 1276 = 1.00000 + 1317 = 1.00000 + 1318 = 1.00000 + 1323 = 1.00000 + 1325 = 1.00000 + 1324 = 1.00000 + 1326 = 1.00000 + 1329 = 1.00000 + 1331 = 1.00000 + 1330 = 1.00000 + 1332 = 1.00000 + 1377 = 1.00000 + 1381 = 1.00000 + 1378 = 1.00000 + 1382 = 1.00000 + 1379 = 1.00000 + 1383 = 1.00000 + 1380 = 1.00000 + 1384 = 1.00000 + 1425 = 1.00000 + 1426 = 1.00000 + 1427 = 1.00000 + 1429 = 1.00000 + 1430 = 1.00000 + 1431 = 1.00000 + 1433 = 1.00000 + 1435 = 1.00000 + 1432 = 1.00000 + 1434 = 1.00000 + 1436 = 1.00000 + 1437 = 1.00000 + 1439 = 1.00000 + 1438 = 1.00000 + 1440 = 1.00000 + 1445 = 1.00000 + 1447 = 1.00000 + 1446 = 1.00000 + 1448 = 1.00000 + 1457 = 1.00000 + 1459 = 1.00000 + 1458 = 1.00000 + 1460 = 1.00000 + 1465 = 1.00000 + 1469 = 1.00000 + 1466 = 1.00000 + 1470 = 1.00000 + 1467 = 1.00000 + 1471 = 1.00000 + 1468 = 1.00000 + 1472 = 1.00000 + 1485 = 1.00000 + 1489 = 1.00000 + 1486 = 1.00000 + 1490 = 1.00000 + 1487 = 1.00000 + 1491 = 1.00000 + 1488 = 1.00000 + 1492 = 1.00000 + 1533 = 1.00000 + 1535 = 1.00000 + 1545 = 1.00000 + 1549 = 1.00000 + 1546 = 1.00000 + 1550 = 1.00000 + 1557 = 1.00000 + 1561 = 1.00000 + 1558 = 1.00000 + 1562 = 1.00000 + 1581 = 1.00000 + 1589 = 1.00000 + 1582 = 1.00000 + 1590 = 1.00000 + 1583 = 1.00000 + 1591 = 1.00000 + 1584 = 1.00000 + 1592 = 1.00000 + 1641 = 1.00000 + 1642 = 1.00000 + 1643 = 1.00000 + 1645 = 1.00000 + 1646 = 1.00000 + 1649 = 1.00000 + 1651 = 1.00000 + 1650 = 1.00000 + 1652 = 1.00000 + 1653 = 1.00000 + 1657 = 1.00000 + 1654 = 1.00000 + 1658 = 1.00000 + 1665 = 1.00000 + 1667 = 1.00000 + 1669 = 1.00000 + 1666 = 1.00000 + 1668 = 1.00000 + 1670 = 1.00000 + 1673 = 1.00000 + 1675 = 1.00000 + 1674 = 1.00000 + 1676 = 1.00000 + 1681 = 1.00000 + 1685 = 1.00000 + 1682 = 1.00000 + 1686 = 1.00000 + 1683 = 1.00000 + 1687 = 1.00000 + 1684 = 1.00000 + 1688 = 1.00000 + 1689 = 1.00000 + 1697 = 1.00000 + 1690 = 1.00000 + 1698 = 1.00000 + 1691 = 1.00000 + 1699 = 1.00000 + 1692 = 1.00000 + 1700 = 1.00000 + 1831 = 1.00000 + 1832 = 1.00000 + 1835 = 1.00000 + 1837 = 1.00000 + 1836 = 1.00000 + 1838 = 1.00000 + 1847 = 1.00000 + 1849 = 1.00000 + 1848 = 1.00000 + 1850 = 1.00000 + 1855 = 1.00000 + 1859 = 1.00000 + 1856 = 1.00000 + 1860 = 1.00000 + 1857 = 1.00000 + 1861 = 1.00000 + 1858 = 1.00000 + 1862 = 1.00000 + 1911 = 1.00000 + 1912 = 1.00000 + 1913 = 1.00000 + 1914 = 1.00000 + 1915 = 1.00000 + 1918 = 1.00000 + 1919 = 1.00000 + 1923 = 1.00000 + 1925 = 1.00000 + 1927 = 1.00000 + 1924 = 1.00000 + 1926 = 1.00000 + 1928 = 1.00000 + 1929 = 1.00000 + 1931 = 1.00000 + 1930 = 1.00000 + 1932 = 1.00000 + 1935 = 1.00000 + 1937 = 1.00000 + 1936 = 1.00000 + 1938 = 1.00000 + 1943 = 1.00000 + 1945 = 1.00000 + 1944 = 1.00000 + 1946 = 1.00000 + 1961 = 1.00000 + 1963 = 1.00000 + 1962 = 1.00000 + 1964 = 1.00000 + 1975 = 1.00000 + 1979 = 1.00000 + 1976 = 1.00000 + 1980 = 1.00000 + 1977 = 1.00000 + 1981 = 1.00000 + 1978 = 1.00000 + 1982 = 1.00000 + 2007 = 1.00000 + 2011 = 1.00000 + 2008 = 1.00000 + 2012 = 1.00000 + 2009 = 1.00000 + 2013 = 1.00000 + 2010 = 1.00000 + 2014 = 1.00000 + 2055 = 1.00000 + 2056 = 1.00000 + 2061 = 1.00000 + 2063 = 1.00000 + 2062 = 1.00000 + 2064 = 1.00000 + 2067 = 1.00000 + 2069 = 1.00000 + 2068 = 1.00000 + 2070 = 1.00000 + 2115 = 1.00000 + 2119 = 1.00000 + 2116 = 1.00000 + 2120 = 1.00000 + 2117 = 1.00000 + 2121 = 1.00000 + 2118 = 1.00000 + 2122 = 1.00000 + 2163 = 1.00000 + 2164 = 1.00000 + 2165 = 1.00000 + 2166 = 1.00000 + 2167 = 1.00000 + 2168 = 1.00000 + 2169 = 1.00000 + 2170 = 1.00000 + 2171 = 1.00000 + 2172 = 1.00000 + 2174 = 1.00000 + 2175 = 1.00000 + 2177 = 1.00000 + 2179 = 1.00000 + 2176 = 1.00000 + 2178 = 1.00000 + 2180 = 1.00000 + 2181 = 1.00000 + 2183 = 1.00000 + 2182 = 1.00000 + 2184 = 1.00000 + 2187 = 1.00000 + 2189 = 1.00000 + 2191 = 1.00000 + 2188 = 1.00000 + 2190 = 1.00000 + 2192 = 1.00000 + 2195 = 1.00000 + 2197 = 1.00000 + 2196 = 1.00000 + 2198 = 1.00000 + 2205 = 1.00000 + 2209 = 1.00000 + 2206 = 1.00000 + 2210 = 1.00000 + 2211 = 1.00000 + 2213 = 1.00000 + 2215 = 1.00000 + 2212 = 1.00000 + 2214 = 1.00000 + 2216 = 1.00000 + 2217 = 1.00000 + 2221 = 1.00000 + 2218 = 1.00000 + 2222 = 1.00000 + 2227 = 1.00000 + 2231 = 1.00000 + 2228 = 1.00000 + 2232 = 1.00000 + 2229 = 1.00000 + 2233 = 1.00000 + 2230 = 1.00000 + 2234 = 1.00000 + 2247 = 1.00000 + 2255 = 1.00000 + 2248 = 1.00000 + 2256 = 1.00000 + 2249 = 1.00000 + 2257 = 1.00000 + 2250 = 1.00000 + 2258 = 1.00000 + 2259 = 1.00000 + 2263 = 1.00000 + 2260 = 1.00000 + 2264 = 1.00000 + 2261 = 1.00000 + 2265 = 1.00000 + 2262 = 1.00000 + 2266 = 1.00000 + 2307 = 1.00000 + 2308 = 1.00000 + 2309 = 1.00000 + 2310 = 1.00000 + 2312 = 1.00000 + 2313 = 1.00000 + 2315 = 1.00000 + 2314 = 1.00000 + 2316 = 1.00000 + 2319 = 1.00000 + 2321 = 1.00000 + 2323 = 1.00000 + 2320 = 1.00000 + 2322 = 1.00000 + 2324 = 1.00000 + 2331 = 1.00000 + 2335 = 1.00000 + 2332 = 1.00000 + 2336 = 1.00000 + 2337 = 1.00000 + 2341 = 1.00000 + 2338 = 1.00000 + 2342 = 1.00000 + 2355 = 1.00000 + 2363 = 1.00000 + 2356 = 1.00000 + 2364 = 1.00000 + 2357 = 1.00000 + 2365 = 1.00000 + 2358 = 1.00000 + 2366 = 1.00000 + 2367 = 1.00000 + 2371 = 1.00000 + 2368 = 1.00000 + 2372 = 1.00000 + 2369 = 1.00000 + 2373 = 1.00000 + 2370 = 1.00000 + 2374 = 1.00000 + 2416 = 1.00000 + 2417 = 1.00000 + 2423 = 1.00000 + 2425 = 1.00000 + 2424 = 1.00000 + 2426 = 1.00000 + 2441 = 1.00000 + 2443 = 1.00000 + 2442 = 1.00000 + 2444 = 1.00000 + 2455 = 1.00000 + 2459 = 1.00000 + 2456 = 1.00000 + 2460 = 1.00000 + 2457 = 1.00000 + 2461 = 1.00000 + 2458 = 1.00000 + 2462 = 1.00000 + 2604 = 1.00000 + 2605 = 1.00000 + 2606 = 1.00000 + 2607 = 1.00000 + 2609 = 1.00000 + 2612 = 1.00000 + 2614 = 1.00000 + 2613 = 1.00000 + 2615 = 1.00000 + 2622 = 1.00000 + 2626 = 1.00000 + 2623 = 1.00000 + 2627 = 1.00000 + 2628 = 1.00000 + 2630 = 1.00000 + 2632 = 1.00000 + 2629 = 1.00000 + 2631 = 1.00000 + 2633 = 1.00000 + 2634 = 1.00000 + 2638 = 1.00000 + 2635 = 1.00000 + 2639 = 1.00000 + 2644 = 1.00000 + 2648 = 1.00000 + 2645 = 1.00000 + 2649 = 1.00000 + 2646 = 1.00000 + 2650 = 1.00000 + 2647 = 1.00000 + 2651 = 1.00000 + 2664 = 1.00000 + 2672 = 1.00000 + 2665 = 1.00000 + 2673 = 1.00000 + 2666 = 1.00000 + 2674 = 1.00000 + 2667 = 1.00000 + 2675 = 1.00000 + 2712 = 1.00000 + 2714 = 1.00000 + 2721 = 1.00000 + 2725 = 1.00000 + 2722 = 1.00000 + 2726 = 1.00000 + 2727 = 1.00000 + 2731 = 1.00000 + 2728 = 1.00000 + 2732 = 1.00000 + 2745 = 1.00000 + 2753 = 1.00000 + 2746 = 1.00000 + 2754 = 1.00000 + 2747 = 1.00000 + 2755 = 1.00000 + 2748 = 1.00000 + 2756 = 1.00000 + 2793 = 1.00000 + 2794 = 1.00000 + 2799 = 1.00000 + 2801 = 1.00000 + 2800 = 1.00000 + 2802 = 1.00000 + 2805 = 1.00000 + 2807 = 1.00000 + 2806 = 1.00000 + 2808 = 1.00000 + 2853 = 1.00000 + 2857 = 1.00000 + 2854 = 1.00000 + 2858 = 1.00000 + 2855 = 1.00000 + 2859 = 1.00000 + 2856 = 1.00000 + 2860 = 1.00000 + 2901 = 1.00000 + 2902 = 1.00000 + 2903 = 1.00000 + 2905 = 1.00000 + 2906 = 1.00000 + 2907 = 1.00000 + 2909 = 1.00000 + 2911 = 1.00000 + 2908 = 1.00000 + 2910 = 1.00000 + 2912 = 1.00000 + 2913 = 1.00000 + 2915 = 1.00000 + 2914 = 1.00000 + 2916 = 1.00000 + 2921 = 1.00000 + 2923 = 1.00000 + 2922 = 1.00000 + 2924 = 1.00000 + 2933 = 1.00000 + 2935 = 1.00000 + 2934 = 1.00000 + 2936 = 1.00000 + 2941 = 1.00000 + 2945 = 1.00000 + 2942 = 1.00000 + 2946 = 1.00000 + 2943 = 1.00000 + 2947 = 1.00000 + 2944 = 1.00000 + 2948 = 1.00000 + 2961 = 1.00000 + 2965 = 1.00000 + 2962 = 1.00000 + 2966 = 1.00000 + 2963 = 1.00000 + 2967 = 1.00000 + 2964 = 1.00000 + 2968 = 1.00000 + 3009 = 1.00000 + 3010 = 1.00000 + 3011 = 1.00000 + 3012 = 1.00000 + 3014 = 1.00000 + 3015 = 1.00000 + 3017 = 1.00000 + 3016 = 1.00000 + 3018 = 1.00000 + 3021 = 1.00000 + 3023 = 1.00000 + 3025 = 1.00000 + 3022 = 1.00000 + 3024 = 1.00000 + 3026 = 1.00000 + 3033 = 1.00000 + 3037 = 1.00000 + 3034 = 1.00000 + 3038 = 1.00000 + 3039 = 1.00000 + 3043 = 1.00000 + 3040 = 1.00000 + 3044 = 1.00000 + 3057 = 1.00000 + 3065 = 1.00000 + 3058 = 1.00000 + 3066 = 1.00000 + 3059 = 1.00000 + 3067 = 1.00000 + 3060 = 1.00000 + 3068 = 1.00000 + 3069 = 1.00000 + 3073 = 1.00000 + 3070 = 1.00000 + 3074 = 1.00000 + 3071 = 1.00000 + 3075 = 1.00000 + 3072 = 1.00000 + 3076 = 1.00000 + 3117 = 1.00000 + 3118 = 1.00000 + 3119 = 1.00000 + 3120 = 1.00000 + 3121 = 1.00000 + 3122 = 1.00000 + 3123 = 1.00000 + 3125 = 1.00000 + 3127 = 1.00000 + 3124 = 1.00000 + 3126 = 1.00000 + 3128 = 1.00000 + 3129 = 1.00000 + 3131 = 1.00000 + 3133 = 1.00000 + 3130 = 1.00000 + 3132 = 1.00000 + 3134 = 1.00000 + 3137 = 1.00000 + 3139 = 1.00000 + 3138 = 1.00000 + 3140 = 1.00000 + 3141 = 1.00000 + 3145 = 1.00000 + 3142 = 1.00000 + 3146 = 1.00000 + 3147 = 1.00000 + 3149 = 1.00000 + 3151 = 1.00000 + 3148 = 1.00000 + 3150 = 1.00000 + 3152 = 1.00000 + 3157 = 1.00000 + 3161 = 1.00000 + 3158 = 1.00000 + 3162 = 1.00000 + 3159 = 1.00000 + 3163 = 1.00000 + 3160 = 1.00000 + 3164 = 1.00000 + 3165 = 1.00000 + 3173 = 1.00000 + 3166 = 1.00000 + 3174 = 1.00000 + 3167 = 1.00000 + 3175 = 1.00000 + 3168 = 1.00000 + 3176 = 1.00000 + 3177 = 1.00000 + 3181 = 1.00000 + 3178 = 1.00000 + 3182 = 1.00000 + 3179 = 1.00000 + 3183 = 1.00000 + 3180 = 1.00000 + 3184 = 1.00000 + 3307 = 1.00000 + 3308 = 1.00000 + 3311 = 1.00000 + 3313 = 1.00000 + 3312 = 1.00000 + 3314 = 1.00000 + 3323 = 1.00000 + 3325 = 1.00000 + 3324 = 1.00000 + 3326 = 1.00000 + 3331 = 1.00000 + 3335 = 1.00000 + 3332 = 1.00000 + 3336 = 1.00000 + 3333 = 1.00000 + 3337 = 1.00000 + 3334 = 1.00000 + 3338 = 1.00000 + 3387 = 1.00000 + 3389 = 1.00000 + 3396 = 1.00000 + 3400 = 1.00000 + 3397 = 1.00000 + 3401 = 1.00000 + 3402 = 1.00000 + 3406 = 1.00000 + 3403 = 1.00000 + 3407 = 1.00000 + 3420 = 1.00000 + 3428 = 1.00000 + 3421 = 1.00000 + 3429 = 1.00000 + 3422 = 1.00000 + 3430 = 1.00000 + 3423 = 1.00000 + 3431 = 1.00000 + 3468 = 1.00000 + 3469 = 1.00000 + 3470 = 1.00000 + 3473 = 1.00000 + 3475 = 1.00000 + 3474 = 1.00000 + 3476 = 1.00000 + 3477 = 1.00000 + 3481 = 1.00000 + 3478 = 1.00000 + 3482 = 1.00000 + 3483 = 1.00000 + 3485 = 1.00000 + 3487 = 1.00000 + 3484 = 1.00000 + 3486 = 1.00000 + 3488 = 1.00000 + 3493 = 1.00000 + 3497 = 1.00000 + 3494 = 1.00000 + 3498 = 1.00000 + 3495 = 1.00000 + 3499 = 1.00000 + 3496 = 1.00000 + 3500 = 1.00000 + 3501 = 1.00000 + 3509 = 1.00000 + 3502 = 1.00000 + 3510 = 1.00000 + 3503 = 1.00000 + 3511 = 1.00000 + 3504 = 1.00000 + 3512 = 1.00000 + 3549 = 1.00000 + 3550 = 1.00000 + 3551 = 1.00000 + 3552 = 1.00000 + 3554 = 1.00000 + 3556 = 1.00000 + 3557 = 1.00000 + 3563 = 1.00000 + 3565 = 1.00000 + 3564 = 1.00000 + 3566 = 1.00000 + 3573 = 1.00000 + 3577 = 1.00000 + 3574 = 1.00000 + 3578 = 1.00000 + 3585 = 1.00000 + 3587 = 1.00000 + 3589 = 1.00000 + 3586 = 1.00000 + 3588 = 1.00000 + 3590 = 1.00000 + 3591 = 1.00000 + 3595 = 1.00000 + 3592 = 1.00000 + 3596 = 1.00000 + 3599 = 1.00000 + 3601 = 1.00000 + 3600 = 1.00000 + 3602 = 1.00000 + 3613 = 1.00000 + 3617 = 1.00000 + 3614 = 1.00000 + 3618 = 1.00000 + 3615 = 1.00000 + 3619 = 1.00000 + 3616 = 1.00000 + 3620 = 1.00000 + 3633 = 1.00000 + 3641 = 1.00000 + 3634 = 1.00000 + 3642 = 1.00000 + 3635 = 1.00000 + 3643 = 1.00000 + 3636 = 1.00000 + 3644 = 1.00000 + 3693 = 1.00000 + 3695 = 1.00000 + 3705 = 1.00000 + 3709 = 1.00000 + 3706 = 1.00000 + 3710 = 1.00000 + 3717 = 1.00000 + 3721 = 1.00000 + 3718 = 1.00000 + 3722 = 1.00000 + 3741 = 1.00000 + 3749 = 1.00000 + 3742 = 1.00000 + 3750 = 1.00000 + 3743 = 1.00000 + 3751 = 1.00000 + 3744 = 1.00000 + 3752 = 1.00000 + 3802 = 1.00000 + 3803 = 1.00000 + 3809 = 1.00000 + 3811 = 1.00000 + 3810 = 1.00000 + 3812 = 1.00000 + 3827 = 1.00000 + 3829 = 1.00000 + 3828 = 1.00000 + 3830 = 1.00000 + 3841 = 1.00000 + 3845 = 1.00000 + 3842 = 1.00000 + 3846 = 1.00000 + 3843 = 1.00000 + 3847 = 1.00000 + 3844 = 1.00000 + 3848 = 1.00000 + 3990 = 1.00000 + 3991 = 1.00000 + 3992 = 1.00000 + 3993 = 1.00000 + 3994 = 1.00000 + 3995 = 1.00000 + 3996 = 1.00000 + 3997 = 1.00000 + 3998 = 1.00000 + 3999 = 1.00000 + 4000 = 1.00000 + 4002 = 1.00000 + 4004 = 1.00000 + 4006 = 1.00000 + 4003 = 1.00000 + 4005 = 1.00000 + 4007 = 1.00000 + 4008 = 1.00000 + 4010 = 1.00000 + 4009 = 1.00000 + 4011 = 1.00000 + 4014 = 1.00000 + 4016 = 1.00000 + 4018 = 1.00000 + 4015 = 1.00000 + 4017 = 1.00000 + 4019 = 1.00000 + 4020 = 1.00000 + 4022 = 1.00000 + 4021 = 1.00000 + 4023 = 1.00000 + 4026 = 1.00000 + 4028 = 1.00000 + 4030 = 1.00000 + 4027 = 1.00000 + 4029 = 1.00000 + 4031 = 1.00000 + 4032 = 1.00000 + 4036 = 1.00000 + 4033 = 1.00000 + 4037 = 1.00000 + 4040 = 1.00000 + 4042 = 1.00000 + 4041 = 1.00000 + 4043 = 1.00000 + 4054 = 1.00000 + 4058 = 1.00000 + 4055 = 1.00000 + 4059 = 1.00000 + 4056 = 1.00000 + 4060 = 1.00000 + 4057 = 1.00000 + 4061 = 1.00000 + 4074 = 1.00000 + 4082 = 1.00000 + 4075 = 1.00000 + 4083 = 1.00000 + 4076 = 1.00000 + 4084 = 1.00000 + 4077 = 1.00000 + 4085 = 1.00000 + 4098 = 1.00000 + 4102 = 1.00000 + 4099 = 1.00000 + 4103 = 1.00000 + 4100 = 1.00000 + 4104 = 1.00000 + 4101 = 1.00000 + 4105 = 1.00000 + 4134 = 1.00000 + 4135 = 1.00000 + 4136 = 1.00000 + 4137 = 1.00000 + 4138 = 1.00000 + 4140 = 1.00000 + 4142 = 1.00000 + 4141 = 1.00000 + 4143 = 1.00000 + 4146 = 1.00000 + 4148 = 1.00000 + 4150 = 1.00000 + 4147 = 1.00000 + 4149 = 1.00000 + 4151 = 1.00000 + 4152 = 1.00000 + 4154 = 1.00000 + 4153 = 1.00000 + 4155 = 1.00000 + 4158 = 1.00000 + 4162 = 1.00000 + 4159 = 1.00000 + 4163 = 1.00000 + 4182 = 1.00000 + 4190 = 1.00000 + 4183 = 1.00000 + 4191 = 1.00000 + 4184 = 1.00000 + 4192 = 1.00000 + 4185 = 1.00000 + 4193 = 1.00000 + 4206 = 1.00000 + 4210 = 1.00000 + 4207 = 1.00000 + 4211 = 1.00000 + 4208 = 1.00000 + 4212 = 1.00000 + 4209 = 1.00000 + 4213 = 1.00000 + 4242 = 1.00000 + 4243 = 1.00000 + 4244 = 1.00000 + 4245 = 1.00000 + 4246 = 1.00000 + 4248 = 1.00000 + 4250 = 1.00000 + 4252 = 1.00000 + 4249 = 1.00000 + 4251 = 1.00000 + 4253 = 1.00000 + 4254 = 1.00000 + 4256 = 1.00000 + 4255 = 1.00000 + 4257 = 1.00000 + 4260 = 1.00000 + 4262 = 1.00000 + 4261 = 1.00000 + 4263 = 1.00000 + 4268 = 1.00000 + 4270 = 1.00000 + 4269 = 1.00000 + 4271 = 1.00000 + 4282 = 1.00000 + 4286 = 1.00000 + 4283 = 1.00000 + 4287 = 1.00000 + 4284 = 1.00000 + 4288 = 1.00000 + 4285 = 1.00000 + 4289 = 1.00000 + 4314 = 1.00000 + 4318 = 1.00000 + 4315 = 1.00000 + 4319 = 1.00000 + 4316 = 1.00000 + 4320 = 1.00000 + 4317 = 1.00000 + 4321 = 1.00000 + 4350 = 1.00000 + 4351 = 1.00000 + 4353 = 1.00000 + 4355 = 1.00000 + 4354 = 1.00000 + 4356 = 1.00000 + 4359 = 1.00000 + 4361 = 1.00000 + 4360 = 1.00000 + 4362 = 1.00000 + 4395 = 1.00000 + 4399 = 1.00000 + 4396 = 1.00000 + 4400 = 1.00000 + 4397 = 1.00000 + 4401 = 1.00000 + 4398 = 1.00000 + 4402 = 1.00000 + 4431 = 1.00000 + 4433 = 1.00000 + 4443 = 1.00000 + 4447 = 1.00000 + 4444 = 1.00000 + 4448 = 1.00000 + 4455 = 1.00000 + 4459 = 1.00000 + 4456 = 1.00000 + 4460 = 1.00000 + 4479 = 1.00000 + 4487 = 1.00000 + 4480 = 1.00000 + 4488 = 1.00000 + 4481 = 1.00000 + 4489 = 1.00000 + 4482 = 1.00000 + 4490 = 1.00000 + 4539 = 1.00000 + 4540 = 1.00000 + 4541 = 1.00000 + 4543 = 1.00000 + 4544 = 1.00000 + 4547 = 1.00000 + 4549 = 1.00000 + 4548 = 1.00000 + 4550 = 1.00000 + 4551 = 1.00000 + 4555 = 1.00000 + 4552 = 1.00000 + 4556 = 1.00000 + 4563 = 1.00000 + 4565 = 1.00000 + 4567 = 1.00000 + 4564 = 1.00000 + 4566 = 1.00000 + 4568 = 1.00000 + 4571 = 1.00000 + 4573 = 1.00000 + 4572 = 1.00000 + 4574 = 1.00000 + 4579 = 1.00000 + 4583 = 1.00000 + 4580 = 1.00000 + 4584 = 1.00000 + 4581 = 1.00000 + 4585 = 1.00000 + 4582 = 1.00000 + 4586 = 1.00000 + 4587 = 1.00000 + 4595 = 1.00000 + 4588 = 1.00000 + 4596 = 1.00000 + 4589 = 1.00000 + 4597 = 1.00000 + 4590 = 1.00000 + 4598 = 1.00000 + 4729 = 1.00000 + 4730 = 1.00000 + 4733 = 1.00000 + 4735 = 1.00000 + 4734 = 1.00000 + 4736 = 1.00000 + 4745 = 1.00000 + 4747 = 1.00000 + 4746 = 1.00000 + 4748 = 1.00000 + 4753 = 1.00000 + 4757 = 1.00000 + 4754 = 1.00000 + 4758 = 1.00000 + 4755 = 1.00000 + 4759 = 1.00000 + 4756 = 1.00000 + 4760 = 1.00000 + 4809 = 1.00000 + 4810 = 1.00000 + 4811 = 1.00000 + 4812 = 1.00000 + 4813 = 1.00000 + 4815 = 1.00000 + 4817 = 1.00000 + 4816 = 1.00000 + 4818 = 1.00000 + 4821 = 1.00000 + 4823 = 1.00000 + 4825 = 1.00000 + 4822 = 1.00000 + 4824 = 1.00000 + 4826 = 1.00000 + 4827 = 1.00000 + 4829 = 1.00000 + 4828 = 1.00000 + 4830 = 1.00000 + 4833 = 1.00000 + 4837 = 1.00000 + 4834 = 1.00000 + 4838 = 1.00000 + 4857 = 1.00000 + 4865 = 1.00000 + 4858 = 1.00000 + 4866 = 1.00000 + 4859 = 1.00000 + 4867 = 1.00000 + 4860 = 1.00000 + 4868 = 1.00000 + 4881 = 1.00000 + 4885 = 1.00000 + 4882 = 1.00000 + 4886 = 1.00000 + 4883 = 1.00000 + 4887 = 1.00000 + 4884 = 1.00000 + 4888 = 1.00000 + 4917 = 1.00000 + 4918 = 1.00000 + 4919 = 1.00000 + 4920 = 1.00000 + 4921 = 1.00000 + 4922 = 1.00000 + 4923 = 1.00000 + 4925 = 1.00000 + 4927 = 1.00000 + 4924 = 1.00000 + 4926 = 1.00000 + 4928 = 1.00000 + 4929 = 1.00000 + 4931 = 1.00000 + 4933 = 1.00000 + 4930 = 1.00000 + 4932 = 1.00000 + 4934 = 1.00000 + 4935 = 1.00000 + 4937 = 1.00000 + 4936 = 1.00000 + 4938 = 1.00000 + 4941 = 1.00000 + 4943 = 1.00000 + 4945 = 1.00000 + 4942 = 1.00000 + 4944 = 1.00000 + 4946 = 1.00000 + 4949 = 1.00000 + 4951 = 1.00000 + 4950 = 1.00000 + 4952 = 1.00000 + 4957 = 1.00000 + 4961 = 1.00000 + 4958 = 1.00000 + 4962 = 1.00000 + 4959 = 1.00000 + 4963 = 1.00000 + 4960 = 1.00000 + 4964 = 1.00000 + 4965 = 1.00000 + 4973 = 1.00000 + 4966 = 1.00000 + 4974 = 1.00000 + 4967 = 1.00000 + 4975 = 1.00000 + 4968 = 1.00000 + 4976 = 1.00000 + 4989 = 1.00000 + 4993 = 1.00000 + 4990 = 1.00000 + 4994 = 1.00000 + 4991 = 1.00000 + 4995 = 1.00000 + 4992 = 1.00000 + 4996 = 1.00000 + 5025 = 1.00000 + 5026 = 1.00000 + 5028 = 1.00000 + 5030 = 1.00000 + 5029 = 1.00000 + 5031 = 1.00000 + 5034 = 1.00000 + 5036 = 1.00000 + 5035 = 1.00000 + 5037 = 1.00000 + 5070 = 1.00000 + 5074 = 1.00000 + 5071 = 1.00000 + 5075 = 1.00000 + 5072 = 1.00000 + 5076 = 1.00000 + 5073 = 1.00000 + 5077 = 1.00000 + 5106 = 1.00000 + 5107 = 1.00000 + 5108 = 1.00000 + 5109 = 1.00000 + 5111 = 1.00000 + 5113 = 1.00000 + 5110 = 1.00000 + 5112 = 1.00000 + 5114 = 1.00000 + 5115 = 1.00000 + 5117 = 1.00000 + 5116 = 1.00000 + 5118 = 1.00000 + 5123 = 1.00000 + 5125 = 1.00000 + 5124 = 1.00000 + 5126 = 1.00000 + 5131 = 1.00000 + 5135 = 1.00000 + 5132 = 1.00000 + 5136 = 1.00000 + 5133 = 1.00000 + 5137 = 1.00000 + 5134 = 1.00000 + 5138 = 1.00000 + 5151 = 1.00000 + 5155 = 1.00000 + 5152 = 1.00000 + 5156 = 1.00000 + 5153 = 1.00000 + 5157 = 1.00000 + 5154 = 1.00000 + 5158 = 1.00000 + 5188 = 1.00000 + 5189 = 1.00000 + 5195 = 1.00000 + 5197 = 1.00000 + 5196 = 1.00000 + 5198 = 1.00000 + 5213 = 1.00000 + 5215 = 1.00000 + 5214 = 1.00000 + 5216 = 1.00000 + 5227 = 1.00000 + 5231 = 1.00000 + 5228 = 1.00000 + 5232 = 1.00000 + 5229 = 1.00000 + 5233 = 1.00000 + 5230 = 1.00000 + 5234 = 1.00000 + 5376 = 1.00000 + 5377 = 1.00000 + 5378 = 1.00000 + 5379 = 1.00000 + 5381 = 1.00000 + 5384 = 1.00000 + 5386 = 1.00000 + 5385 = 1.00000 + 5387 = 1.00000 + 5394 = 1.00000 + 5398 = 1.00000 + 5395 = 1.00000 + 5399 = 1.00000 + 5400 = 1.00000 + 5402 = 1.00000 + 5404 = 1.00000 + 5401 = 1.00000 + 5403 = 1.00000 + 5405 = 1.00000 + 5406 = 1.00000 + 5410 = 1.00000 + 5407 = 1.00000 + 5411 = 1.00000 + 5416 = 1.00000 + 5420 = 1.00000 + 5417 = 1.00000 + 5421 = 1.00000 + 5418 = 1.00000 + 5422 = 1.00000 + 5419 = 1.00000 + 5423 = 1.00000 + 5436 = 1.00000 + 5444 = 1.00000 + 5437 = 1.00000 + 5445 = 1.00000 + 5438 = 1.00000 + 5446 = 1.00000 + 5439 = 1.00000 + 5447 = 1.00000 + 5484 = 1.00000 + 5486 = 1.00000 + 5493 = 1.00000 + 5497 = 1.00000 + 5494 = 1.00000 + 5498 = 1.00000 + 5499 = 1.00000 + 5503 = 1.00000 + 5500 = 1.00000 + 5504 = 1.00000 + 5517 = 1.00000 + 5525 = 1.00000 + 5518 = 1.00000 + 5526 = 1.00000 + 5519 = 1.00000 + 5527 = 1.00000 + 5520 = 1.00000 + 5528 = 1.00000 + 5565 = 1.00000 + 5566 = 1.00000 + 5567 = 1.00000 + 5568 = 1.00000 + 5569 = 1.00000 + 5571 = 1.00000 + 5573 = 1.00000 + 5575 = 1.00000 + 5572 = 1.00000 + 5574 = 1.00000 + 5576 = 1.00000 + 5577 = 1.00000 + 5579 = 1.00000 + 5578 = 1.00000 + 5580 = 1.00000 + 5583 = 1.00000 + 5585 = 1.00000 + 5584 = 1.00000 + 5586 = 1.00000 + 5591 = 1.00000 + 5593 = 1.00000 + 5592 = 1.00000 + 5594 = 1.00000 + 5605 = 1.00000 + 5609 = 1.00000 + 5606 = 1.00000 + 5610 = 1.00000 + 5607 = 1.00000 + 5611 = 1.00000 + 5608 = 1.00000 + 5612 = 1.00000 + 5637 = 1.00000 + 5641 = 1.00000 + 5638 = 1.00000 + 5642 = 1.00000 + 5639 = 1.00000 + 5643 = 1.00000 + 5640 = 1.00000 + 5644 = 1.00000 + 5673 = 1.00000 + 5674 = 1.00000 + 5676 = 1.00000 + 5678 = 1.00000 + 5677 = 1.00000 + 5679 = 1.00000 + 5682 = 1.00000 + 5684 = 1.00000 + 5683 = 1.00000 + 5685 = 1.00000 + 5718 = 1.00000 + 5722 = 1.00000 + 5719 = 1.00000 + 5723 = 1.00000 + 5720 = 1.00000 + 5724 = 1.00000 + 5721 = 1.00000 + 5725 = 1.00000 + 5754 = 1.00000 + 5755 = 1.00000 + 5756 = 1.00000 + 5757 = 1.00000 + 5758 = 1.00000 + 5759 = 1.00000 + 5760 = 1.00000 + 5762 = 1.00000 + 5764 = 1.00000 + 5761 = 1.00000 + 5763 = 1.00000 + 5765 = 1.00000 + 5766 = 1.00000 + 5768 = 1.00000 + 5767 = 1.00000 + 5769 = 1.00000 + 5772 = 1.00000 + 5774 = 1.00000 + 5776 = 1.00000 + 5773 = 1.00000 + 5775 = 1.00000 + 5777 = 1.00000 + 5778 = 1.00000 + 5780 = 1.00000 + 5782 = 1.00000 + 5779 = 1.00000 + 5781 = 1.00000 + 5783 = 1.00000 + 5784 = 1.00000 + 5788 = 1.00000 + 5785 = 1.00000 + 5789 = 1.00000 + 5794 = 1.00000 + 5798 = 1.00000 + 5795 = 1.00000 + 5799 = 1.00000 + 5796 = 1.00000 + 5800 = 1.00000 + 5797 = 1.00000 + 5801 = 1.00000 + 5814 = 1.00000 + 5822 = 1.00000 + 5815 = 1.00000 + 5823 = 1.00000 + 5816 = 1.00000 + 5824 = 1.00000 + 5817 = 1.00000 + 5825 = 1.00000 + 5826 = 1.00000 + 5830 = 1.00000 + 5827 = 1.00000 + 5831 = 1.00000 + 5828 = 1.00000 + 5832 = 1.00000 + 5829 = 1.00000 + 5833 = 1.00000 + 5862 = 1.00000 + 5863 = 1.00000 + 5864 = 1.00000 + 5865 = 1.00000 + 5867 = 1.00000 + 5866 = 1.00000 + 5868 = 1.00000 + 5871 = 1.00000 + 5873 = 1.00000 + 5875 = 1.00000 + 5872 = 1.00000 + 5874 = 1.00000 + 5876 = 1.00000 + 5877 = 1.00000 + 5881 = 1.00000 + 5878 = 1.00000 + 5882 = 1.00000 + 5895 = 1.00000 + 5903 = 1.00000 + 5896 = 1.00000 + 5904 = 1.00000 + 5897 = 1.00000 + 5905 = 1.00000 + 5898 = 1.00000 + 5906 = 1.00000 + 5907 = 1.00000 + 5911 = 1.00000 + 5908 = 1.00000 + 5912 = 1.00000 + 5909 = 1.00000 + 5913 = 1.00000 + 5910 = 1.00000 + 5914 = 1.00000 + 6025 = 1.00000 + 6026 = 1.00000 + 6029 = 1.00000 + 6031 = 1.00000 + 6030 = 1.00000 + 6032 = 1.00000 + 6041 = 1.00000 + 6043 = 1.00000 + 6042 = 1.00000 + 6044 = 1.00000 + 6049 = 1.00000 + 6053 = 1.00000 + 6050 = 1.00000 + 6054 = 1.00000 + 6051 = 1.00000 + 6055 = 1.00000 + 6052 = 1.00000 + 6056 = 1.00000 + 6105 = 1.00000 + 6107 = 1.00000 + 6114 = 1.00000 + 6118 = 1.00000 + 6115 = 1.00000 + 6119 = 1.00000 + 6120 = 1.00000 + 6124 = 1.00000 + 6121 = 1.00000 + 6125 = 1.00000 + 6138 = 1.00000 + 6146 = 1.00000 + 6139 = 1.00000 + 6147 = 1.00000 + 6140 = 1.00000 + 6148 = 1.00000 + 6141 = 1.00000 + 6149 = 1.00000 + 6186 = 1.00000 + 6187 = 1.00000 + 6188 = 1.00000 + 6191 = 1.00000 + 6193 = 1.00000 + 6192 = 1.00000 + 6194 = 1.00000 + 6195 = 1.00000 + 6199 = 1.00000 + 6196 = 1.00000 + 6200 = 1.00000 + 6201 = 1.00000 + 6203 = 1.00000 + 6205 = 1.00000 + 6202 = 1.00000 + 6204 = 1.00000 + 6206 = 1.00000 + 6211 = 1.00000 + 6215 = 1.00000 + 6212 = 1.00000 + 6216 = 1.00000 + 6213 = 1.00000 + 6217 = 1.00000 + 6214 = 1.00000 + 6218 = 1.00000 + 6219 = 1.00000 + 6227 = 1.00000 + 6220 = 1.00000 + 6228 = 1.00000 + 6221 = 1.00000 + 6229 = 1.00000 + 6222 = 1.00000 + 6230 = 1.00000 + 6267 = 1.00000 + 6268 = 1.00000 + 6270 = 1.00000 + 6272 = 1.00000 + 6271 = 1.00000 + 6273 = 1.00000 + 6276 = 1.00000 + 6278 = 1.00000 + 6277 = 1.00000 + 6279 = 1.00000 + 6312 = 1.00000 + 6316 = 1.00000 + 6313 = 1.00000 + 6317 = 1.00000 + 6314 = 1.00000 + 6318 = 1.00000 + 6315 = 1.00000 + 6319 = 1.00000 + 6348 = 1.00000 + 6349 = 1.00000 + 6350 = 1.00000 + 6351 = 1.00000 + 6353 = 1.00000 + 6355 = 1.00000 + 6352 = 1.00000 + 6354 = 1.00000 + 6356 = 1.00000 + 6357 = 1.00000 + 6359 = 1.00000 + 6358 = 1.00000 + 6360 = 1.00000 + 6365 = 1.00000 + 6367 = 1.00000 + 6366 = 1.00000 + 6368 = 1.00000 + 6373 = 1.00000 + 6377 = 1.00000 + 6374 = 1.00000 + 6378 = 1.00000 + 6375 = 1.00000 + 6379 = 1.00000 + 6376 = 1.00000 + 6380 = 1.00000 + 6393 = 1.00000 + 6397 = 1.00000 + 6394 = 1.00000 + 6398 = 1.00000 + 6395 = 1.00000 + 6399 = 1.00000 + 6396 = 1.00000 + 6400 = 1.00000 + 6429 = 1.00000 + 6430 = 1.00000 + 6431 = 1.00000 + 6432 = 1.00000 + 6434 = 1.00000 + 6433 = 1.00000 + 6435 = 1.00000 + 6438 = 1.00000 + 6440 = 1.00000 + 6442 = 1.00000 + 6439 = 1.00000 + 6441 = 1.00000 + 6443 = 1.00000 + 6444 = 1.00000 + 6448 = 1.00000 + 6445 = 1.00000 + 6449 = 1.00000 + 6462 = 1.00000 + 6470 = 1.00000 + 6463 = 1.00000 + 6471 = 1.00000 + 6464 = 1.00000 + 6472 = 1.00000 + 6465 = 1.00000 + 6473 = 1.00000 + 6474 = 1.00000 + 6478 = 1.00000 + 6475 = 1.00000 + 6479 = 1.00000 + 6476 = 1.00000 + 6480 = 1.00000 + 6477 = 1.00000 + 6481 = 1.00000 + 6510 = 1.00000 + 6511 = 1.00000 + 6512 = 1.00000 + 6513 = 1.00000 + 6515 = 1.00000 + 6517 = 1.00000 + 6514 = 1.00000 + 6516 = 1.00000 + 6518 = 1.00000 + 6519 = 1.00000 + 6521 = 1.00000 + 6523 = 1.00000 + 6520 = 1.00000 + 6522 = 1.00000 + 6524 = 1.00000 + 6525 = 1.00000 + 6527 = 1.00000 + 6529 = 1.00000 + 6526 = 1.00000 + 6528 = 1.00000 + 6530 = 1.00000 + 6535 = 1.00000 + 6539 = 1.00000 + 6536 = 1.00000 + 6540 = 1.00000 + 6537 = 1.00000 + 6541 = 1.00000 + 6538 = 1.00000 + 6542 = 1.00000 + 6543 = 1.00000 + 6551 = 1.00000 + 6544 = 1.00000 + 6552 = 1.00000 + 6545 = 1.00000 + 6553 = 1.00000 + 6546 = 1.00000 + 6554 = 1.00000 + 6555 = 1.00000 + 6559 = 1.00000 + 6556 = 1.00000 + 6560 = 1.00000 + 6557 = 1.00000 + 6561 = 1.00000 + 6558 = 1.00000 + 6562 = 1.00000 diff --git a/tests/distributed_grids/coarse_grid_common.h b/tests/distributed_grids/coarse_grid_common.h index fc3cdd7012..655ecea87c 100644 --- a/tests/distributed_grids/coarse_grid_common.h +++ b/tests/distributed_grids/coarse_grid_common.h @@ -26,7 +26,7 @@ #include -template +template void write_vtk (const parallel::distributed::Triangulation &tria, const char *filename) { diff --git a/tests/fail/merge_triangulations_02.cc b/tests/fail/merge_triangulations_02.cc new file mode 100644 index 0000000000..0dc65307b4 --- /dev/null +++ b/tests/fail/merge_triangulations_02.cc @@ -0,0 +1,115 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2014 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. +// +// --------------------------------------------------------------------- + + +// GridGenerator::merge_triangulation did not call +// GridReordering::reorder_cells, but even then it may sometimes fail. +// +// testcase by Carlos Galeano + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +std::ofstream logfile("output"); + +template +void mesh_info(const Triangulation &tria) +{ + deallog << "Mesh info:" << std::endl + << " dimension: " << dim << std::endl + << " no. of cells: " << tria.n_active_cells() << std::endl; + + // Next loop over all faces of all cells and find how often each boundary + // indicator is used: + { + std::map boundary_count; + typename Triangulation::active_cell_iterator + cell = tria.begin_active(), + endc = tria.end(); + for (; cell!=endc; ++cell) + { + for (unsigned int face=0; face::faces_per_cell; ++face) + { + if (cell->face(face)->at_boundary()) + boundary_count[cell->face(face)->boundary_indicator()]++; + } + } + + deallog << " boundary indicators: "; + for (std::map::iterator it=boundary_count.begin(); + it!=boundary_count.end(); + ++it) + { + deallog << it->first << "(" << it->second << " times) "; + } + deallog << std::endl; + } + + // Finally, produce a graphical representation of the mesh to an output + // file: + GridOut grid_out; + grid_out.write_gnuplot (tria, deallog.get_file_stream()); +} + + +void make_grid () +{ + Triangulation<2> tria1; + GridGenerator::hyper_cube_with_cylindrical_hole (tria1, 0.25, 1.0); + + Triangulation<2> tria3; + GridGenerator::hyper_cube_with_cylindrical_hole (tria3, 0.25, 1.0); + GridTools::shift (Point<2>(0,-2), tria3); + Triangulation<2> triangulation2; + + mesh_info (tria1); + mesh_info (tria3); + GridGenerator::merge_triangulations (tria1, tria3, triangulation2); + + mesh_info(triangulation2); + deallog << "Number of active cells: " + << triangulation2.n_active_cells() + << std::endl; + deallog << "Total number of cells: " + << triangulation2.n_cells() + << std::endl; + +} + + +int main () +{ + deallog << std::setprecision(2); + logfile << std::setprecision(2); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + make_grid(); +} diff --git a/tests/fail/merge_triangulations_02.output b/tests/fail/merge_triangulations_02.output new file mode 100644 index 0000000000..d871c6b8ed --- /dev/null +++ b/tests/fail/merge_triangulations_02.output @@ -0,0 +1,121 @@ +JobId linux-sh2g.site Mon Apr 7 13:28:47 2014 +DEAL::Mesh info: +DEAL:: dimension: 2 +DEAL:: no. of cells: 8 +DEAL:: boundary indicators: 0(8 times) 1(8 times) +1.0 0.0 0 0 +1.0 1.0 0 0 +0.18 0.18 0 0 +0.25 0.0 0 0 +1.0 0.0 0 0 + + +1.0 1.0 0 0 +6.1e-17 1.0 0 0 +1.5e-17 0.25 0 0 +0.18 0.18 0 0 +1.0 1.0 0 0 + + +6.1e-17 1.0 0 0 +-1.0 1.0 0 0 +-0.18 0.18 0 0 +1.5e-17 0.25 0 0 +6.1e-17 1.0 0 0 + + +-1.0 1.0 0 0 +-1.0 1.2e-16 0 0 +-0.25 3.1e-17 0 0 +-0.18 0.18 0 0 +-1.0 1.0 0 0 + + +-1.0 1.2e-16 0 0 +-1.0 -1.0 0 0 +-0.18 -0.18 0 0 +-0.25 3.1e-17 0 0 +-1.0 1.2e-16 0 0 + + +-1.0 -1.0 0 0 +-1.8e-16 -1.0 0 0 +-4.6e-17 -0.25 0 0 +-0.18 -0.18 0 0 +-1.0 -1.0 0 0 + + +-1.8e-16 -1.0 0 0 +1.0 -1.0 0 0 +0.18 -0.18 0 0 +-4.6e-17 -0.25 0 0 +-1.8e-16 -1.0 0 0 + + +1.0 -1.0 0 0 +1.0 0.0 0 0 +0.25 0.0 0 0 +0.18 -0.18 0 0 +1.0 -1.0 0 0 + + +DEAL::Mesh info: +DEAL:: dimension: 2 +DEAL:: no. of cells: 8 +DEAL:: boundary indicators: 0(8 times) 1(8 times) +1.0 -2.0 0 0 +1.0 -1.0 0 0 +0.18 -1.8 0 0 +0.25 -2.0 0 0 +1.0 -2.0 0 0 + + +1.0 -1.0 0 0 +6.1e-17 -1.0 0 0 +1.5e-17 -1.8 0 0 +0.18 -1.8 0 0 +1.0 -1.0 0 0 + + +6.1e-17 -1.0 0 0 +-1.0 -1.0 0 0 +-0.18 -1.8 0 0 +1.5e-17 -1.8 0 0 +6.1e-17 -1.0 0 0 + + +-1.0 -1.0 0 0 +-1.0 -2.0 0 0 +-0.25 -2.0 0 0 +-0.18 -1.8 0 0 +-1.0 -1.0 0 0 + + +-1.0 -2.0 0 0 +-1.0 -3.0 0 0 +-0.18 -2.2 0 0 +-0.25 -2.0 0 0 +-1.0 -2.0 0 0 + + +-1.0 -3.0 0 0 +-1.8e-16 -3.0 0 0 +-4.6e-17 -2.2 0 0 +-0.18 -2.2 0 0 +-1.0 -3.0 0 0 + + +-1.8e-16 -3.0 0 0 +1.0 -3.0 0 0 +0.18 -2.2 0 0 +-4.6e-17 -2.2 0 0 +-1.8e-16 -3.0 0 0 + + +1.0 -3.0 0 0 +1.0 -2.0 0 0 +0.25 -2.0 0 0 +0.18 -2.2 0 0 +1.0 -3.0 0 0 + + diff --git a/tests/fe/bdm_1.cc b/tests/fe/bdm_1.cc new file mode 100644 index 0000000000..03b176685e --- /dev/null +++ b/tests/fe/bdm_1.cc @@ -0,0 +1,102 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2003 - 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. +// +// --------------------------------------------------------------------- + + + +// Show the shape functions of the Raviart-Thomas element on the unit cell +// Plots are gnuplot compatible if lines with desired prefix are selected. + +#include "../tests.h" +#include +#include + +#include +#include +#include +#include + +#define PRECISION 2 + + + +template +inline void +plot_shape_functions(const unsigned int degree) +{ + FE_BDM fe_rt(degree); + deallog.push(fe_rt.get_name()); + + const unsigned int div=2; + for (unsigned int mz=0; mz<=((dim>2) ? div : 0) ; ++mz) + for (unsigned int my=0; my<=((dim>1) ? div : 0) ; ++my) + { + for (unsigned int mx=0; mx<=div; ++mx) + { + const Point p = (dim==2 ? + Point(1.*mx/div, 1.*my/div) : + Point(1.*mx/div, 1.*my/div, 1.*mz/div)); + + // Lines with function + // values contain + // quadrature point and one + // vector of dim entries + // for each chape function + deallog << "value " << p; + for (unsigned int i=0; i(degree); +// plot_shape_functions<3>(degree); + + return 0; +} + + + diff --git a/tests/fe/bdm_1.output b/tests/fe/bdm_1.output new file mode 100644 index 0000000000..b0e53a8915 --- /dev/null +++ b/tests/fe/bdm_1.output @@ -0,0 +1,73 @@ + +DEAL:FE_BDM<2>(1)::value 0.00 0.00 1.37 0 -0.37 0 0 0 0 0 0 1.37 0 -0.37 0 0 0 0 +DEAL:FE_BDM<2>(1)::grad 0.00 0.00 -1.37 -1.73 0 0.87 0.37 1.73 0 -0.87 1.37 0 0 -0.87 -0.37 0 0 0.87 0.87 0 -1.73 -1.37 -0.87 0 1.73 0.37 -0.87 0 0 1.37 0.87 0 0 -0.37 +DEAL:FE_BDM<2>(1)::value 0.50 0.00 0.68 0 -0.18 0 0.68 0 -0.18 0 0.22 0.50 -0.22 0.50 -0.22 0 0.22 0 +DEAL:FE_BDM<2>(1)::grad 0.50 0.00 -1.37 -0.87 0 0.87 0.37 0.87 0 -0.87 1.37 -0.87 0 -0.87 -0.37 0.87 0 0.87 0 0 -1.73 -0.50 0 0 1.73 -0.50 0 0 0 0.50 0 0 0 0.50 +DEAL:FE_BDM<2>(1)::value 1.00 0.00 0 0 0 0 1.37 0 -0.37 0 0 -0.37 0 1.37 0 0 0 0 +DEAL:FE_BDM<2>(1)::grad 1.00 0.00 -1.37 0 0 0.87 0.37 0 0 -0.87 1.37 -1.73 0 -0.87 -0.37 1.73 0 0.87 -0.87 0 -1.73 0.37 0.87 0 1.73 -1.37 0.87 0 0 -0.37 -0.87 0 0 1.37 +DEAL:FE_BDM<2>(1)::value +DEAL:FE_BDM<2>(1)::grad +DEAL:FE_BDM<2>(1)::value 0.00 0.50 0.50 0.22 0.50 -0.22 0 -0.22 0 0.22 0 0.68 0 -0.18 0 0.68 0 -0.18 +DEAL:FE_BDM<2>(1)::grad 0.00 0.50 -0.50 -1.73 0 0 -0.50 1.73 0 0 0.50 0 0 0 0.50 0 0 0 0.87 0 -0.87 -1.37 -0.87 0 0.87 0.37 -0.87 0 -0.87 1.37 0.87 0 0.87 -0.37 +DEAL:FE_BDM<2>(1)::value 0.50 0.50 0.25 0.22 0.25 -0.22 0.25 -0.22 0.25 0.22 0.22 0.25 -0.22 0.25 -0.22 0.25 0.22 0.25 +DEAL:FE_BDM<2>(1)::grad 0.50 0.50 -0.50 -0.87 0 0 -0.50 0.87 0 0 0.50 -0.87 0 0 0.50 0.87 0 0 0 0 -0.87 -0.50 0 0 0.87 -0.50 0 0 -0.87 0.50 0 0 0.87 0.50 +DEAL:FE_BDM<2>(1)::value 1.00 0.50 0 0.22 0 -0.22 0.50 -0.22 0.50 0.22 0 -0.18 0 0.68 0 -0.18 0 0.68 +DEAL:FE_BDM<2>(1)::grad 1.00 0.50 -0.50 0 0 0 -0.50 0 0 0 0.50 -1.73 0 0 0.50 1.73 0 0 -0.87 0 -0.87 0.37 0.87 0 0.87 -1.37 0.87 0 -0.87 -0.37 -0.87 0 0.87 1.37 +DEAL:FE_BDM<2>(1)::value +DEAL:FE_BDM<2>(1)::grad +DEAL:FE_BDM<2>(1)::value 0.00 1.00 -0.37 0 1.37 0 0 0 0 0 0 0 0 0 0 1.37 0 -0.37 +DEAL:FE_BDM<2>(1)::grad 0.00 1.00 0.37 -1.73 0 -0.87 -1.37 1.73 0 0.87 -0.37 0 0 0.87 1.37 0 0 -0.87 0.87 0 0 -1.37 -0.87 0 0 0.37 -0.87 0 -1.73 1.37 0.87 0 1.73 -0.37 +DEAL:FE_BDM<2>(1)::value 0.50 1.00 -0.18 0 0.68 0 -0.18 0 0.68 0 0.22 0 -0.22 0 -0.22 0.50 0.22 0.50 +DEAL:FE_BDM<2>(1)::grad 0.50 1.00 0.37 -0.87 0 -0.87 -1.37 0.87 0 0.87 -0.37 -0.87 0 0.87 1.37 0.87 0 -0.87 0 0 0 -0.50 0 0 0 -0.50 0 0 -1.73 0.50 0 0 1.73 0.50 +DEAL:FE_BDM<2>(1)::value 1.00 1.00 0 0 0 0 -0.37 0 1.37 0 0 0 0 0 0 -0.37 0 1.37 +DEAL:FE_BDM<2>(1)::grad 1.00 1.00 0.37 0 0 -0.87 -1.37 0 0 0.87 -0.37 -1.73 0 0.87 1.37 1.73 0 -0.87 -0.87 0 0 0.37 0.87 0 0 -1.37 0.87 0 -1.73 -0.37 -0.87 0 1.73 1.37 +DEAL:FE_BDM<2>(1)::value +DEAL:FE_BDM<2>(1)::grad +DEAL:FE_BDM<2>(2)::value 0.00 0.00 1.48 0 -0.67 0 0.19 0 0 0 0 0 0 0 0 1.48 0 -0.67 0 0.19 0 0 0 0 0 0 0 0 0 0 +DEAL:FE_BDM<2>(2)::grad 0.00 0.00 -2.31 -4.62 0 0.56 -0.67 6.67 0 -1.11 -1.02 -2.04 0 0.56 0.65 0 0 -0.56 -2.00 0 0 1.11 -0.65 0 0 -0.56 0.56 0 -4.62 -2.31 -1.11 0 6.67 -0.67 0.56 0 -2.04 -1.02 -0.56 0 0 0.65 1.11 0 0 -2.00 -0.56 0 0 -0.65 6.00 0 0 0 0 0 0 6.00 +DEAL:FE_BDM<2>(2)::value 0.50 0.00 0.53 0 -0.67 0 -0.11 0 0.53 0 -0.67 0 -0.11 0 0 0 0 1.00 0 0 0 0 0 0 0 0 1.50 0 0 0 +DEAL:FE_BDM<2>(2)::grad 0.50 0.00 -1.48 -2.31 0 0.56 0.67 3.33 0 -1.11 -0.19 -1.02 0 0.56 1.48 -2.31 0 -0.56 -0.67 3.33 0 1.11 0.19 -1.02 0 -0.56 -0.28 0 -1.29 -0.83 0.56 0 0 -2.33 -0.28 0 1.29 -0.83 0.28 0 0 -0.83 -0.56 0 0 -0.33 0.28 0 0 -0.83 0 0 0 0 0 0 0 6.00 +DEAL:FE_BDM<2>(2)::value 1.00 0.00 0 0 0 0 0 0 1.48 0 -0.67 0 0.19 0 0 0.19 0 -0.67 0 1.48 0 0 0 0 0 0 0 0 0 0 +DEAL:FE_BDM<2>(2)::grad 1.00 0.00 -0.65 0 0 0.56 2.00 0 0 -1.11 0.65 0 0 0.56 2.31 -4.62 0 -0.56 0.67 6.67 0 1.11 1.02 -2.04 0 -0.56 0.56 0 2.04 -1.02 -1.11 0 -6.67 -0.67 0.56 0 4.62 -2.31 -0.56 0 0 -0.65 1.11 0 0 -2.00 -0.56 0 0 0.65 -6.00 0 0 0 0 0 0 6.00 +DEAL:FE_BDM<2>(2)::value +DEAL:FE_BDM<2>(2)::grad +DEAL:FE_BDM<2>(2)::value 0.00 0.50 0 0 1.00 0 0 0 0 0 0 0 0 0 0 0.53 0 -0.67 0 -0.11 0 0.53 0 -0.67 0 -0.11 0 0 0 1.50 +DEAL:FE_BDM<2>(2)::grad 0.00 0.50 -0.83 -1.29 0 -0.28 -2.33 0 0 0.56 -0.83 1.29 0 -0.28 -0.83 0 0 0.28 -0.33 0 0 -0.56 -0.83 0 0 0.28 0.56 0 -2.31 -1.48 -1.11 0 3.33 0.67 0.56 0 -1.02 -0.19 -0.56 0 -2.31 1.48 1.11 0 3.33 -0.67 -0.56 0 -1.02 0.19 6.00 0 0 0 0 0 0 0 +DEAL:FE_BDM<2>(2)::value 0.50 0.50 -0.21 0 0.17 0 -0.21 0 -0.21 0 0.17 0 -0.21 0 0 -0.21 0 0.17 0 -0.21 0 -0.21 0 0.17 0 -0.21 1.50 0 0 1.50 +DEAL:FE_BDM<2>(2)::grad 0.50 0.50 0 -0.65 0 -0.28 -1.00 0 0 0.56 0 0.65 0 -0.28 0 -0.65 0 0.28 1.00 0 0 -0.56 0 0.65 0 0.28 -0.28 0 -0.65 0 0.56 0 0 -1.00 -0.28 0 0.65 0 0.28 0 -0.65 0 -0.56 0 0 1.00 0.28 0 0.65 0 0 0 0 0 0 0 0 0 +DEAL:FE_BDM<2>(2)::value 1.00 0.50 0 0 0 0 0 0 0 0 1.00 0 0 0 0 -0.11 0 -0.67 0 0.53 0 -0.11 0 -0.67 0 0.53 0 0 0 1.50 +DEAL:FE_BDM<2>(2)::grad 1.00 0.50 0.83 0 0 -0.28 0.33 0 0 0.56 0.83 0 0 -0.28 0.83 -1.29 0 0.28 2.33 0 0 -0.56 0.83 1.29 0 0.28 0.56 0 1.02 -0.19 -1.11 0 -3.33 0.67 0.56 0 2.31 -1.48 -0.56 0 1.02 0.19 1.11 0 -3.33 -0.67 -0.56 0 2.31 1.48 -6.00 0 0 0 0 0 0 0 +DEAL:FE_BDM<2>(2)::value +DEAL:FE_BDM<2>(2)::grad +DEAL:FE_BDM<2>(2)::value 0.00 1.00 0.19 0 -0.67 0 1.48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.48 0 -0.67 0 0.19 0 0 0 0 +DEAL:FE_BDM<2>(2)::grad 0.00 1.00 -1.02 2.04 0 0.56 -0.67 -6.67 0 -1.11 -2.31 4.62 0 0.56 -0.65 0 0 -0.56 -2.00 0 0 1.11 0.65 0 0 -0.56 0.56 0 0 -0.65 -1.11 0 0 2.00 0.56 0 0 0.65 -0.56 0 -4.62 2.31 1.11 0 6.67 0.67 -0.56 0 -2.04 1.02 6.00 0 0 0 0 0 0 -6.00 +DEAL:FE_BDM<2>(2)::value 0.50 1.00 -0.11 0 -0.67 0 0.53 0 -0.11 0 -0.67 0 0.53 0 0 0 0 0 0 0 0 0 0 1.00 0 0 1.50 0 0 0 +DEAL:FE_BDM<2>(2)::grad 0.50 1.00 -0.19 1.02 0 0.56 0.67 -3.33 0 -1.11 -1.48 2.31 0 0.56 0.19 1.02 0 -0.56 -0.67 -3.33 0 1.11 1.48 2.31 0 -0.56 -0.28 0 0 0.83 0.56 0 0 0.33 -0.28 0 0 0.83 0.28 0 -1.29 0.83 -0.56 0 0 2.33 0.28 0 1.29 0.83 0 0 0 0 0 0 0 -6.00 +DEAL:FE_BDM<2>(2)::value 1.00 1.00 0 0 0 0 0 0 0.19 0 -0.67 0 1.48 0 0 0 0 0 0 0 0 0.19 0 -0.67 0 1.48 0 0 0 0 +DEAL:FE_BDM<2>(2)::grad 1.00 1.00 0.65 0 0 0.56 2.00 0 0 -1.11 -0.65 0 0 0.56 1.02 2.04 0 -0.56 0.67 -6.67 0 1.11 2.31 4.62 0 -0.56 0.56 0 0 0.65 -1.11 0 0 2.00 0.56 0 0 -0.65 -0.56 0 2.04 1.02 1.11 0 -6.67 0.67 -0.56 0 4.62 2.31 -6.00 0 0 0 0 0 0 -6.00 +DEAL:FE_BDM<2>(2)::value +DEAL:FE_BDM<2>(2)::grad +DEAL:FE_BDM<2>(3)::value 0.00 0.00 1.53 0 -0.81 0 0.40 0 -0.11 0 0 0 0 0 0 0 0 0 0 1.53 0 -0.81 0 0.40 0 -0.11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:FE_BDM<2>(3)::grad 0.00 0.00 -4.27 -8.55 0 0.37 -2.79 13.81 0 -0.94 -2.01 -7.42 0 0.94 0.07 2.16 0 -0.37 0.53 0 0 -0.37 -1.16 0 0 0.94 2.05 0 0 -0.94 1.58 0 0 0.37 0.37 0 -8.55 -4.27 -0.94 0 13.81 -2.79 0.94 0 -7.42 -2.01 -0.37 0 2.16 0.07 -0.37 0 0 0.53 0.94 0 0 -1.16 -0.94 0 0 2.05 0.37 0 0 1.58 54.00 0 0 0 -60.00 0 0 0 -36.00 0 0 0 0 0 0 54.00 0 0 0 -36.00 0 0 0 -60.00 +DEAL:FE_BDM<2>(3)::value 0.50 0.00 0.30 0 -0.90 0 0.21 0 0.15 0 0.30 0 -0.90 0 0.21 0 0.15 0 -0.02 -0.09 0.06 0.59 -0.06 0.59 0.02 -0.09 0.02 0 -0.06 0 0.06 0 -0.02 0 6.00 0 0 0 -9.00 0 0 0 0 0 0 0 +DEAL:FE_BDM<2>(3)::grad 0.50 0.00 -1.09 -3.60 0 0.37 1.63 7.40 0 -0.94 0.41 -4.21 0 0.94 0.55 0.40 0 -0.37 1.09 -3.60 0 -0.37 -1.63 7.40 0 0.94 -0.41 -4.21 0 -0.94 -0.55 0.40 0 0.37 0 0 0.21 -1.30 0 0 -3.48 -3.20 0 0 3.48 -3.20 0 0 -0.21 -1.30 0 0 0 0.26 0 0 0 1.24 0 0 0 1.24 0 0 0 0.26 -15.00 -9.00 0 0 30.00 0 0 0 0 18.00 0 0 0 0 0 36.00 0 0 0 0 0 0 0 -60.00 +DEAL:FE_BDM<2>(3)::value 1.00 0.00 0 0 0 0 0 0 0 0 1.53 0 -0.81 0 0.40 0 -0.11 0 0 -0.11 0 0.40 0 -0.81 0 1.53 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:FE_BDM<2>(3)::grad 1.00 0.00 -0.53 0 0 0.37 1.16 0 0 -0.94 -2.05 0 0 0.94 -1.58 0 0 -0.37 4.27 -8.55 0 -0.37 2.79 13.81 0 0.94 2.01 -7.42 0 -0.94 -0.07 2.16 0 0.37 -0.37 0 -2.16 0.07 0.94 0 7.42 -2.01 -0.94 0 -13.81 -2.79 0.37 0 8.55 -4.27 0.37 0 0 1.58 -0.94 0 0 2.05 0.94 0 0 -1.16 -0.37 0 0 0.53 6.00 0 0 0 -60.00 0 0 0 36.00 0 0 0 0 0 0 18.00 0 0 0 36.00 0 0 0 -60.00 +DEAL:FE_BDM<2>(3)::value +DEAL:FE_BDM<2>(3)::grad +DEAL:FE_BDM<2>(3)::value 0.00 0.50 -0.09 -0.02 0.59 0.06 0.59 -0.06 -0.09 0.02 0 0.02 0 -0.06 0 0.06 0 -0.02 0 0.30 0 -0.90 0 0.21 0 0.15 0 0.30 0 -0.90 0 0.21 0 0.15 0 0 0 0 0 0 0 6.00 0 -9.00 0 0 +DEAL:FE_BDM<2>(3)::grad 0.00 0.50 -1.30 0.21 0 0 -3.20 -3.48 0 0 -3.20 3.48 0 0 -1.30 -0.21 0 0 0.26 0 0 0 1.24 0 0 0 1.24 0 0 0 0.26 0 0 0 0.37 0 -3.60 -1.09 -0.94 0 7.40 1.63 0.94 0 -4.21 0.41 -0.37 0 0.40 0.55 -0.37 0 -3.60 1.09 0.94 0 7.40 -1.63 -0.94 0 -4.21 -0.41 0.37 0 0.40 -0.55 36.00 0 0 0 -60.00 0 0 0 0 0 0 0 0 0 -9.00 -15.00 0 0 18.00 0 0 0 0 30.00 +DEAL:FE_BDM<2>(3)::value 0.50 0.50 -0.18 -0.02 0.05 0.06 0.05 -0.06 -0.18 0.02 -0.18 0.02 0.05 -0.06 0.05 0.06 -0.18 -0.02 -0.02 -0.18 0.06 0.05 -0.06 0.05 0.02 -0.18 0.02 -0.18 -0.06 0.05 0.06 0.05 -0.02 -0.18 1.50 0 0 0 0 0 0 1.50 0 0 0 0 +DEAL:FE_BDM<2>(3)::grad 0.50 0.50 0.53 0.78 0 0 0.22 -1.24 0 0 0.22 1.24 0 0 0.53 -0.78 0 0 -0.53 0.78 0 0 -0.22 -1.24 0 0 -0.22 1.24 0 0 -0.53 -0.78 0 0 0 0 0.78 0.53 0 0 -1.24 0.22 0 0 1.24 0.22 0 0 -0.78 0.53 0 0 0.78 -0.53 0 0 -1.24 -0.22 0 0 1.24 -0.22 0 0 -0.78 -0.53 -15.00 -9.00 0 0 30.00 0 0 0 0 18.00 0 0 0 0 -9.00 -15.00 0 0 18.00 0 0 0 0 30.00 +DEAL:FE_BDM<2>(3)::value 1.00 0.50 0 -0.02 0 0.06 0 -0.06 0 0.02 -0.09 0.02 0.59 -0.06 0.59 0.06 -0.09 -0.02 0 0.15 0 0.21 0 -0.90 0 0.30 0 0.15 0 0.21 0 -0.90 0 0.30 0 0 0 0 0 0 0 -3.00 0 9.00 0 0 +DEAL:FE_BDM<2>(3)::grad 1.00 0.50 -0.26 0 0 0 -1.24 0 0 0 -1.24 0 0 0 -0.26 0 0 0 1.30 0.21 0 0 3.20 -3.48 0 0 3.20 3.48 0 0 1.30 -0.21 0 0 -0.37 0 -0.40 0.55 0.94 0 4.21 0.41 -0.94 0 -7.40 1.63 0.37 0 3.60 -1.09 0.37 0 -0.40 -0.55 -0.94 0 4.21 -0.41 0.94 0 -7.40 -1.63 -0.37 0 3.60 1.09 24.00 0 0 0 -60.00 0 0 0 0 0 0 0 0 0 -9.00 -15.00 0 0 18.00 0 0 0 0 30.00 +DEAL:FE_BDM<2>(3)::value +DEAL:FE_BDM<2>(3)::grad +DEAL:FE_BDM<2>(3)::value 0.00 1.00 -0.11 0 0.40 0 -0.81 0 1.53 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.53 0 -0.81 0 0.40 0 -0.11 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:FE_BDM<2>(3)::grad 0.00 1.00 0.07 -2.16 0 -0.37 -2.01 7.42 0 0.94 -2.79 -13.81 0 -0.94 -4.27 8.55 0 0.37 1.58 0 0 0.37 2.05 0 0 -0.94 -1.16 0 0 0.94 0.53 0 0 -0.37 0.37 0 0 -0.53 -0.94 0 0 1.16 0.94 0 0 -2.05 -0.37 0 0 -1.58 -0.37 0 -8.55 4.27 0.94 0 13.81 2.79 -0.94 0 -7.42 2.01 0.37 0 2.16 -0.07 18.00 0 0 0 -60.00 0 0 0 36.00 0 0 0 0 0 0 6.00 0 0 0 36.00 0 0 0 -60.00 +DEAL:FE_BDM<2>(3)::value 0.50 1.00 0.15 0 0.21 0 -0.90 0 0.30 0 0.15 0 0.21 0 -0.90 0 0.30 0 -0.02 0 0.06 0 -0.06 0 0.02 0 0.02 -0.09 -0.06 0.59 0.06 0.59 -0.02 -0.09 -3.00 0 0 0 9.00 0 0 0 0 0 0 0 +DEAL:FE_BDM<2>(3)::grad 0.50 1.00 0.55 -0.40 0 -0.37 0.41 4.21 0 0.94 1.63 -7.40 0 -0.94 -1.09 3.60 0 0.37 -0.55 -0.40 0 0.37 -0.41 4.21 0 -0.94 -1.63 -7.40 0 0.94 1.09 3.60 0 -0.37 0 0 0 -0.26 0 0 0 -1.24 0 0 0 -1.24 0 0 0 -0.26 0 0 0.21 1.30 0 0 -3.48 3.20 0 0 3.48 3.20 0 0 -0.21 1.30 -15.00 -9.00 0 0 30.00 0 0 0 0 18.00 0 0 0 0 0 24.00 0 0 0 0 0 0 0 -60.00 +DEAL:FE_BDM<2>(3)::value 1.00 1.00 0 0 0 0 0 0 0 0 -0.11 0 0.40 0 -0.81 0 1.53 0 0 0 0 0 0 0 0 0 0 -0.11 0 0.40 0 -0.81 0 1.53 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:FE_BDM<2>(3)::grad 1.00 1.00 -1.58 0 0 -0.37 -2.05 0 0 0.94 1.16 0 0 -0.94 -0.53 0 0 0.37 -0.07 -2.16 0 0.37 2.01 7.42 0 -0.94 2.79 -13.81 0 0.94 4.27 8.55 0 -0.37 -0.37 0 0 -1.58 0.94 0 0 -2.05 -0.94 0 0 1.16 0.37 0 0 -0.53 0.37 0 -2.16 -0.07 -0.94 0 7.42 2.01 0.94 0 -13.81 2.79 -0.37 0 8.55 4.27 42.00 0 0 0 -60.00 0 0 0 -36.00 0 0 0 0 0 0 42.00 0 0 0 -36.00 0 0 0 -60.00 +DEAL:FE_BDM<2>(3)::value +DEAL:FE_BDM<2>(3)::grad diff --git a/tests/fe/bdm_10.cc b/tests/fe/bdm_10.cc new file mode 100644 index 0000000000..facba4def3 --- /dev/null +++ b/tests/fe/bdm_10.cc @@ -0,0 +1,103 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2003 - 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. +// +// --------------------------------------------------------------------- + + +// Observe how the values of the shape functions change as we make a +// cell smaller and smaller + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define PRECISION 2 + + +std::ofstream logfile ("output"); + +template +void +test (const unsigned int degree) +{ + FE_BDM fe_rt(degree); + + deallog << "Degree=" << degree + << std::endl; + + for (double h=1; h>1./128; h/=2) + { + deallog << " h=" << h + << std::endl; + + Triangulation tr; + GridGenerator::hyper_cube(tr, 0., h); + + DoFHandler dof(tr); + dof.distribute_dofs(fe_rt); + + QTrapez quadrature; + + FEValues fe_values (fe_rt, quadrature, update_values); + fe_values.reinit (dof.begin_active()); + for (unsigned int q=0; q(i); + + return 0; +} + + + diff --git a/tests/fe/bdm_10.output b/tests/fe/bdm_10.output new file mode 100644 index 0000000000..cf259935c8 --- /dev/null +++ b/tests/fe/bdm_10.output @@ -0,0 +1,109 @@ + +DEAL::Degree=1 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [1.37 0 ][-0.37 0 ][0 0 ][0 0 ][0 1.37 ][0 -0.37 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][1.37 0 ][-0.37 0 ][0 -0.37 ][0 1.37 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [-0.37 0 ][1.37 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.37 ][0 -0.37 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][-0.37 0 ][1.37 0 ][0 0 ][0 0 ][0 -0.37 ][0 1.37 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [2.73 0 ][-0.73 0 ][0 0 ][0 0 ][0 2.73 ][0 -0.73 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][2.73 0 ][-0.73 0 ][0 -0.73 ][0 2.73 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [-0.73 0 ][2.73 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 2.73 ][0 -0.73 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][-0.73 0 ][2.73 0 ][0 0 ][0 0 ][0 -0.73 ][0 2.73 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [5.46 0 ][-1.46 0 ][0 0 ][0 0 ][0 5.46 ][0 -1.46 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][5.46 0 ][-1.46 0 ][0 -1.46 ][0 5.46 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [-1.46 0 ][5.46 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 5.46 ][0 -1.46 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][-1.46 0 ][5.46 0 ][0 0 ][0 0 ][0 -1.46 ][0 5.46 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [10.93 0 ][-2.93 0 ][0 0 ][0 0 ][0 10.93 ][0 -2.93 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][10.93 0 ][-2.93 0 ][0 -2.93 ][0 10.93 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [-2.93 0 ][10.93 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 10.93 ][0 -2.93 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][-2.93 0 ][10.93 0 ][0 0 ][0 0 ][0 -2.93 ][0 10.93 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [21.86 0 ][-5.86 0 ][0 0 ][0 0 ][0 21.86 ][0 -5.86 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][21.86 0 ][-5.86 0 ][0 -5.86 ][0 21.86 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [-5.86 0 ][21.86 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 21.86 ][0 -5.86 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][-5.86 0 ][21.86 0 ][0 0 ][0 0 ][0 -5.86 ][0 21.86 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [43.71 0 ][-11.71 0 ][0 0 ][0 0 ][0 43.71 ][0 -11.71 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][43.71 0 ][-11.71 0 ][0 -11.71 ][0 43.71 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [-11.71 0 ][43.71 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 43.71 ][0 -11.71 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][-11.71 0 ][43.71 0 ][0 0 ][0 0 ][0 -11.71 ][0 43.71 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [87.43 0 ][-23.43 0 ][0 0 ][0 0 ][0 87.43 ][0 -23.43 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][87.43 0 ][-23.43 0 ][0 -23.43 ][0 87.43 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [-23.43 0 ][87.43 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 87.43 ][0 -23.43 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][-23.43 0 ][87.43 0 ][0 0 ][0 0 ][0 -23.43 ][0 87.43 ] +DEAL::Degree=2 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [1.48 0 ][-0.67 0 ][0.19 0 ][0 0 ][0 0 ][0 0 ][0 1.48 ][0 -0.67 ][0 0.19 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][1.48 0 ][-0.67 0 ][0.19 0 ][0 0.19 ][0 -0.67 ][0 1.48 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [0.19 0 ][-0.67 0 ][1.48 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.48 ][0 -0.67 ][0 0.19 ][0 0 ][0 0 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0.19 0 ][-0.67 0 ][1.48 0 ][0 0 ][0 0 ][0 0 ][0 0.19 ][0 -0.67 ][0 1.48 ][0 0 ][0 0 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [2.96 0 ][-1.33 0 ][0.38 0 ][0 0 ][0 0 ][0 0 ][0 2.96 ][0 -1.33 ][0 0.38 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][2.96 0 ][-1.33 0 ][0.38 0 ][0 0.38 ][0 -1.33 ][0 2.96 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [0.38 0 ][-1.33 0 ][2.96 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 2.96 ][0 -1.33 ][0 0.38 ][0 0 ][0 0 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0.38 0 ][-1.33 0 ][2.96 0 ][0 0 ][0 0 ][0 0 ][0 0.38 ][0 -1.33 ][0 2.96 ][0 0 ][0 0 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [5.92 0 ][-2.67 0 ][0.75 0 ][0 0 ][0 0 ][0 0 ][0 5.92 ][0 -2.67 ][0 0.75 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][5.92 0 ][-2.67 0 ][0.75 0 ][0 0.75 ][0 -2.67 ][0 5.92 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [0.75 0 ][-2.67 0 ][5.92 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 5.92 ][0 -2.67 ][0 0.75 ][0 0 ][0 0 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0.75 0 ][-2.67 0 ][5.92 0 ][0 0 ][0 0 ][0 0 ][0 0.75 ][0 -2.67 ][0 5.92 ][0 0 ][0 0 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [11.83 0 ][-5.33 0 ][1.50 0 ][0 0 ][0 0 ][0 0 ][0 11.83 ][0 -5.33 ][0 1.50 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][11.83 0 ][-5.33 0 ][1.50 0 ][0 1.50 ][0 -5.33 ][0 11.83 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [1.50 0 ][-5.33 0 ][11.83 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 11.83 ][0 -5.33 ][0 1.50 ][0 0 ][0 0 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][1.50 0 ][-5.33 0 ][11.83 0 ][0 0 ][0 0 ][0 0 ][0 1.50 ][0 -5.33 ][0 11.83 ][0 0 ][0 0 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [23.66 0 ][-10.67 0 ][3.01 0 ][0 0 ][0 0 ][0 0 ][0 23.66 ][0 -10.67 ][0 3.01 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][23.66 0 ][-10.67 0 ][3.01 0 ][0 3.01 ][0 -10.67 ][0 23.66 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [3.01 0 ][-10.67 0 ][23.66 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 23.66 ][0 -10.67 ][0 3.01 ][0 0 ][0 0 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][3.01 0 ][-10.67 0 ][23.66 0 ][0 0 ][0 0 ][0 0 ][0 3.01 ][0 -10.67 ][0 23.66 ][0 0 ][0 0 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [47.32 0 ][-21.33 0 ][6.01 0 ][0 0 ][0 0 ][0 0 ][0 47.32 ][0 -21.33 ][0 6.01 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][47.32 0 ][-21.33 0 ][6.01 0 ][0 6.01 ][0 -21.33 ][0 47.32 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [6.01 0 ][-21.33 0 ][47.32 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 47.32 ][0 -21.33 ][0 6.01 ][0 0 ][0 0 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][6.01 0 ][-21.33 0 ][47.32 0 ][0 0 ][0 0 ][0 0 ][0 6.01 ][0 -21.33 ][0 47.32 ][0 0 ][0 0 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [94.65 0 ][-42.67 0 ][12.02 0 ][0 0 ][0 0 ][0 0 ][0 94.65 ][0 -42.67 ][0 12.02 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][94.65 0 ][-42.67 0 ][12.02 0 ][0 12.02 ][0 -42.67 ][0 94.65 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [12.02 0 ][-42.67 0 ][94.65 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 94.65 ][0 -42.67 ][0 12.02 ][0 0 ][0 0 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][12.02 0 ][-42.67 0 ][94.65 0 ][0 0 ][0 0 ][0 0 ][0 12.02 ][0 -42.67 ][0 94.65 ][0 0 ][0 0 ] +DEAL::Degree=3 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [1.53 0 ][-0.81 0 ][0.40 0 ][-0.11 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.53 ][0 -0.81 ][0 0.40 ][0 -0.11 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][0 0 ][1.53 0 ][-0.81 0 ][0.40 0 ][-0.11 0 ][0 -0.11 ][0 0.40 ][0 -0.81 ][0 1.53 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [-0.11 0 ][0.40 0 ][-0.81 0 ][1.53 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.53 ][0 -0.81 ][0 0.40 ][0 -0.11 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0 0 ][-0.11 0 ][0.40 0 ][-0.81 0 ][1.53 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 -0.11 ][0 0.40 ][0 -0.81 ][0 1.53 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [3.05 0 ][-1.63 0 ][0.80 0 ][-0.23 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 3.05 ][0 -1.63 ][0 0.80 ][0 -0.23 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][0 0 ][3.05 0 ][-1.63 0 ][0.80 0 ][-0.23 0 ][0 -0.23 ][0 0.80 ][0 -1.63 ][0 3.05 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [-0.23 0 ][0.80 0 ][-1.63 0 ][3.05 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 3.05 ][0 -1.63 ][0 0.80 ][0 -0.23 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0 0 ][-0.23 0 ][0.80 0 ][-1.63 0 ][3.05 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 -0.23 ][0 0.80 ][0 -1.63 ][0 3.05 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [6.11 0 ][-3.25 0 ][1.60 0 ][-0.46 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 6.11 ][0 -3.25 ][0 1.60 ][0 -0.46 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][0 0 ][6.11 0 ][-3.25 0 ][1.60 0 ][-0.46 0 ][0 -0.46 ][0 1.60 ][0 -3.25 ][0 6.11 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [-0.46 0 ][1.60 0 ][-3.25 0 ][6.11 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 6.11 ][0 -3.25 ][0 1.60 ][0 -0.46 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0 0 ][-0.46 0 ][1.60 0 ][-3.25 0 ][6.11 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 -0.46 ][0 1.60 ][0 -3.25 ][0 6.11 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [12.21 0 ][-6.51 0 ][3.21 0 ][-0.91 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 12.21 ][0 -6.51 ][0 3.21 ][0 -0.91 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][0 0 ][12.21 0 ][-6.51 0 ][3.21 0 ][-0.91 0 ][0 -0.91 ][0 3.21 ][0 -6.51 ][0 12.21 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [-0.91 0 ][3.21 0 ][-6.51 0 ][12.21 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 12.21 ][0 -6.51 ][0 3.21 ][0 -0.91 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0 0 ][-0.91 0 ][3.21 0 ][-6.51 0 ][12.21 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 -0.91 ][0 3.21 ][0 -6.51 ][0 12.21 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [24.43 0 ][-13.02 0 ][6.41 0 ][-1.82 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 24.43 ][0 -13.02 ][0 6.41 ][0 -1.82 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][0 0 ][24.43 0 ][-13.02 0 ][6.41 0 ][-1.82 0 ][0 -1.82 ][0 6.41 ][0 -13.02 ][0 24.43 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [-1.82 0 ][6.41 0 ][-13.02 0 ][24.43 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 24.43 ][0 -13.02 ][0 6.41 ][0 -1.82 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0 0 ][-1.82 0 ][6.41 0 ][-13.02 0 ][24.43 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 -1.82 ][0 6.41 ][0 -13.02 ][0 24.43 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [48.86 0 ][-26.04 0 ][12.82 0 ][-3.65 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 48.86 ][0 -26.04 ][0 12.82 ][0 -3.65 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][0 0 ][48.86 0 ][-26.04 0 ][12.82 0 ][-3.65 0 ][0 -3.65 ][0 12.82 ][0 -26.04 ][0 48.86 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [-3.65 0 ][12.82 0 ][-26.04 0 ][48.86 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 48.86 ][0 -26.04 ][0 12.82 ][0 -3.65 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0 0 ][-3.65 0 ][12.82 0 ][-26.04 0 ][48.86 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 -3.65 ][0 12.82 ][0 -26.04 ][0 48.86 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [97.71 0 ][-52.07 0 ][25.65 0 ][-7.29 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 97.71 ][0 -52.07 ][0 25.65 ][0 -7.29 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][0 0 ][97.71 0 ][-52.07 0 ][25.65 0 ][-7.29 0 ][0 -7.29 ][0 25.65 ][0 -52.07 ][0 97.71 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 2: [-7.29 0 ][25.65 0 ][-52.07 0 ][97.71 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 97.71 ][0 -52.07 ][0 25.65 ][0 -7.29 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0 0 ][-7.29 0 ][25.65 0 ][-52.07 0 ][97.71 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 -7.29 ][0 25.65 ][0 -52.07 ][0 97.71 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] diff --git a/tests/fe/bdm_11.cc b/tests/fe/bdm_11.cc new file mode 100644 index 0000000000..ba3d774370 --- /dev/null +++ b/tests/fe/bdm_11.cc @@ -0,0 +1,109 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2003 - 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. +// +// --------------------------------------------------------------------- + + +// Observe how the values of the shape functions change as we make a +// cell smaller and smaller. Evaluate the values with FEFaceValues, to +// make sure the values scale as in rt_10 where we used FEValues +// +// the test used to fail because of the issue with computing the +// normals using FEFaceValue, where FEFaceValue by accident uses the +// *face* mapping, not the *cell* mapping to compute the Piola +// transform (leading to a missing power of h in the determinant) + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define PRECISION 2 + + +std::ofstream logfile ("output"); + +template +void +test (const unsigned int degree) +{ + FE_BDM fe_rt(degree); + + deallog << "Degree=" << degree + << std::endl; + + for (double h=1; h>1./128; h/=2) + { + deallog << " h=" << h + << std::endl; + + Triangulation tr; + GridGenerator::hyper_cube(tr, 0., h); + + DoFHandler dof(tr); + dof.distribute_dofs(fe_rt); + + QTrapez quadrature; + + FEFaceValues fe_values (fe_rt, quadrature, update_values); + fe_values.reinit (dof.begin_active(), 0); + for (unsigned int q=0; q(i); + + return 0; +} + + + diff --git a/tests/fe/bdm_11.output b/tests/fe/bdm_11.output new file mode 100644 index 0000000000..68667e57bb --- /dev/null +++ b/tests/fe/bdm_11.output @@ -0,0 +1,67 @@ + +DEAL::Degree=1 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [1.37 0 ][-0.37 0 ][0 0 ][0 0 ][0 1.37 ][0 -0.37 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-0.37 0 ][1.37 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.37 ][0 -0.37 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [2.73 0 ][-0.73 0 ][0 0 ][0 0 ][0 2.73 ][0 -0.73 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-0.73 0 ][2.73 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 2.73 ][0 -0.73 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [5.46 0 ][-1.46 0 ][0 0 ][0 0 ][0 5.46 ][0 -1.46 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-1.46 0 ][5.46 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 5.46 ][0 -1.46 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [10.93 0 ][-2.93 0 ][0 0 ][0 0 ][0 10.93 ][0 -2.93 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-2.93 0 ][10.93 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 10.93 ][0 -2.93 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [21.86 0 ][-5.86 0 ][0 0 ][0 0 ][0 21.86 ][0 -5.86 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-5.86 0 ][21.86 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 21.86 ][0 -5.86 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [43.71 0 ][-11.71 0 ][0 0 ][0 0 ][0 43.71 ][0 -11.71 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-11.71 0 ][43.71 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 43.71 ][0 -11.71 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [87.43 0 ][-23.43 0 ][0 0 ][0 0 ][0 87.43 ][0 -23.43 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-23.43 0 ][87.43 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 87.43 ][0 -23.43 ] +DEAL::Degree=2 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [1.48 0 ][-0.67 0 ][0.19 0 ][0 0 ][0 0 ][0 0 ][0 1.48 ][0 -0.67 ][0 0.19 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0.19 0 ][-0.67 0 ][1.48 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.48 ][0 -0.67 ][0 0.19 ][0 0 ][0 0 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [2.96 0 ][-1.33 0 ][0.38 0 ][0 0 ][0 0 ][0 0 ][0 2.96 ][0 -1.33 ][0 0.38 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0.38 0 ][-1.33 0 ][2.96 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 2.96 ][0 -1.33 ][0 0.38 ][0 0 ][0 0 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [5.92 0 ][-2.67 0 ][0.75 0 ][0 0 ][0 0 ][0 0 ][0 5.92 ][0 -2.67 ][0 0.75 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0.75 0 ][-2.67 0 ][5.92 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 5.92 ][0 -2.67 ][0 0.75 ][0 0 ][0 0 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [11.83 0 ][-5.33 0 ][1.50 0 ][0 0 ][0 0 ][0 0 ][0 11.83 ][0 -5.33 ][0 1.50 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [1.50 0 ][-5.33 0 ][11.83 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 11.83 ][0 -5.33 ][0 1.50 ][0 0 ][0 0 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [23.66 0 ][-10.67 0 ][3.01 0 ][0 0 ][0 0 ][0 0 ][0 23.66 ][0 -10.67 ][0 3.01 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [3.01 0 ][-10.67 0 ][23.66 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 23.66 ][0 -10.67 ][0 3.01 ][0 0 ][0 0 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [47.32 0 ][-21.33 0 ][6.01 0 ][0 0 ][0 0 ][0 0 ][0 47.32 ][0 -21.33 ][0 6.01 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [6.01 0 ][-21.33 0 ][47.32 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 47.32 ][0 -21.33 ][0 6.01 ][0 0 ][0 0 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [94.65 0 ][-42.67 0 ][12.02 0 ][0 0 ][0 0 ][0 0 ][0 94.65 ][0 -42.67 ][0 12.02 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [12.02 0 ][-42.67 0 ][94.65 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 94.65 ][0 -42.67 ][0 12.02 ][0 0 ][0 0 ] +DEAL::Degree=3 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [1.53 0 ][-0.81 0 ][0.40 0 ][-0.11 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.53 ][0 -0.81 ][0 0.40 ][0 -0.11 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-0.11 0 ][0.40 0 ][-0.81 0 ][1.53 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.53 ][0 -0.81 ][0 0.40 ][0 -0.11 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [3.05 0 ][-1.63 0 ][0.80 0 ][-0.23 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 3.05 ][0 -1.63 ][0 0.80 ][0 -0.23 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-0.23 0 ][0.80 0 ][-1.63 0 ][3.05 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 3.05 ][0 -1.63 ][0 0.80 ][0 -0.23 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [6.11 0 ][-3.25 0 ][1.60 0 ][-0.46 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 6.11 ][0 -3.25 ][0 1.60 ][0 -0.46 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-0.46 0 ][1.60 0 ][-3.25 0 ][6.11 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 6.11 ][0 -3.25 ][0 1.60 ][0 -0.46 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [12.21 0 ][-6.51 0 ][3.21 0 ][-0.91 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 12.21 ][0 -6.51 ][0 3.21 ][0 -0.91 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-0.91 0 ][3.21 0 ][-6.51 0 ][12.21 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 12.21 ][0 -6.51 ][0 3.21 ][0 -0.91 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [24.43 0 ][-13.02 0 ][6.41 0 ][-1.82 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 24.43 ][0 -13.02 ][0 6.41 ][0 -1.82 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-1.82 0 ][6.41 0 ][-13.02 0 ][24.43 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 24.43 ][0 -13.02 ][0 6.41 ][0 -1.82 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [48.86 0 ][-26.04 0 ][12.82 0 ][-3.65 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 48.86 ][0 -26.04 ][0 12.82 ][0 -3.65 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-3.65 0 ][12.82 0 ][-26.04 0 ][48.86 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 48.86 ][0 -26.04 ][0 12.82 ][0 -3.65 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [97.71 0 ][-52.07 0 ][25.65 0 ][-7.29 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 97.71 ][0 -52.07 ][0 25.65 ][0 -7.29 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-7.29 0 ][25.65 0 ][-52.07 0 ][97.71 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 97.71 ][0 -52.07 ][0 25.65 ][0 -7.29 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] diff --git a/tests/fe/bdm_12.cc b/tests/fe/bdm_12.cc new file mode 100644 index 0000000000..59d36b14f0 --- /dev/null +++ b/tests/fe/bdm_12.cc @@ -0,0 +1,102 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2003 - 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. +// +// --------------------------------------------------------------------- + + +// Like rt_10, but check gradients instead of values + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define PRECISION 2 + + +std::ofstream logfile ("output"); + +template +void +test (const unsigned int degree) +{ + FE_BDM fe_rt(degree); + + deallog << "Degree=" << degree + << std::endl; + + for (double h=1; h>1./128; h/=2) + { + deallog << " h=" << h + << std::endl; + + Triangulation tr; + GridGenerator::hyper_cube(tr, 0., h); + + DoFHandler dof(tr); + dof.distribute_dofs(fe_rt); + + QTrapez quadrature; + + FEValues fe_values (fe_rt, quadrature, update_gradients); + fe_values.reinit (dof.begin_active()); + for (unsigned int q=0; q(i); + + return 0; +} + + + diff --git a/tests/fe/bdm_12.output b/tests/fe/bdm_12.output new file mode 100644 index 0000000000..4d3e3799ab --- /dev/null +++ b/tests/fe/bdm_12.output @@ -0,0 +1,109 @@ + +DEAL::Degree=1 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [-1.37 -1.73 0.00 0.87 ][0.37 1.73 0.00 -0.87 ][1.37 0.00 0.00 -0.87 ][-0.37 0.00 0.00 0.87 ][0.87 0.00 -1.73 -1.37 ][-0.87 0.00 1.73 0.37 ][-0.87 0.00 0.00 1.37 ][0.87 0.00 0.00 -0.37 ] +DEAL:: Quadrature point 1: [-1.37 0.00 0.00 0.87 ][0.37 0.00 0.00 -0.87 ][1.37 -1.73 0.00 -0.87 ][-0.37 1.73 0.00 0.87 ][-0.87 0.00 -1.73 0.37 ][0.87 0.00 1.73 -1.37 ][0.87 0.00 0.00 -0.37 ][-0.87 0.00 0.00 1.37 ] +DEAL:: Quadrature point 2: [0.37 -1.73 0.00 -0.87 ][-1.37 1.73 0.00 0.87 ][-0.37 0.00 0.00 0.87 ][1.37 0.00 0.00 -0.87 ][0.87 0.00 0.00 -1.37 ][-0.87 0.00 0.00 0.37 ][-0.87 0.00 -1.73 1.37 ][0.87 0.00 1.73 -0.37 ] +DEAL:: Quadrature point 3: [0.37 0.00 0.00 -0.87 ][-1.37 0.00 0.00 0.87 ][-0.37 -1.73 0.00 0.87 ][1.37 1.73 0.00 -0.87 ][-0.87 0.00 0.00 0.37 ][0.87 0.00 0.00 -1.37 ][0.87 0.00 -1.73 -0.37 ][-0.87 0.00 1.73 1.37 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [-5.46 -6.93 0.00 3.46 ][1.46 6.93 0.00 -3.46 ][5.46 0.00 0.00 -3.46 ][-1.46 0.00 0.00 3.46 ][3.46 0.00 -6.93 -5.46 ][-3.46 0.00 6.93 1.46 ][-3.46 0.00 0.00 5.46 ][3.46 0.00 0.00 -1.46 ] +DEAL:: Quadrature point 1: [-5.46 0.00 0.00 3.46 ][1.46 0.00 0.00 -3.46 ][5.46 -6.93 0.00 -3.46 ][-1.46 6.93 0.00 3.46 ][-3.46 0.00 -6.93 1.46 ][3.46 0.00 6.93 -5.46 ][3.46 0.00 0.00 -1.46 ][-3.46 0.00 0.00 5.46 ] +DEAL:: Quadrature point 2: [1.46 -6.93 0.00 -3.46 ][-5.46 6.93 0.00 3.46 ][-1.46 0.00 0.00 3.46 ][5.46 0.00 0.00 -3.46 ][3.46 0.00 0.00 -5.46 ][-3.46 0.00 0.00 1.46 ][-3.46 0.00 -6.93 5.46 ][3.46 0.00 6.93 -1.46 ] +DEAL:: Quadrature point 3: [1.46 0.00 0.00 -3.46 ][-5.46 0.00 0.00 3.46 ][-1.46 -6.93 0.00 3.46 ][5.46 6.93 0.00 -3.46 ][-3.46 0.00 0.00 1.46 ][3.46 0.00 0.00 -5.46 ][3.46 0.00 -6.93 -1.46 ][-3.46 0.00 6.93 5.46 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [-21.86 -27.71 0.00 13.86 ][5.86 27.71 0.00 -13.86 ][21.86 0.00 0.00 -13.86 ][-5.86 0.00 0.00 13.86 ][13.86 0.00 -27.71 -21.86 ][-13.86 0.00 27.71 5.86 ][-13.86 0.00 0.00 21.86 ][13.86 0.00 0.00 -5.86 ] +DEAL:: Quadrature point 1: [-21.86 0.00 0.00 13.86 ][5.86 0.00 0.00 -13.86 ][21.86 -27.71 0.00 -13.86 ][-5.86 27.71 0.00 13.86 ][-13.86 0.00 -27.71 5.86 ][13.86 0.00 27.71 -21.86 ][13.86 0.00 0.00 -5.86 ][-13.86 0.00 0.00 21.86 ] +DEAL:: Quadrature point 2: [5.86 -27.71 0.00 -13.86 ][-21.86 27.71 0.00 13.86 ][-5.86 0.00 0.00 13.86 ][21.86 0.00 0.00 -13.86 ][13.86 0.00 0.00 -21.86 ][-13.86 0.00 0.00 5.86 ][-13.86 0.00 -27.71 21.86 ][13.86 0.00 27.71 -5.86 ] +DEAL:: Quadrature point 3: [5.86 0.00 0.00 -13.86 ][-21.86 0.00 0.00 13.86 ][-5.86 -27.71 0.00 13.86 ][21.86 27.71 0.00 -13.86 ][-13.86 0.00 0.00 5.86 ][13.86 0.00 0.00 -21.86 ][13.86 0.00 -27.71 -5.86 ][-13.86 0.00 27.71 21.86 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [-87.43 -110.85 0.00 55.43 ][23.43 110.85 0.00 -55.43 ][87.43 0.00 0.00 -55.43 ][-23.43 0.00 0.00 55.43 ][55.43 0.00 -110.85 -87.43 ][-55.43 0.00 110.85 23.43 ][-55.43 0.00 0.00 87.43 ][55.43 0.00 0.00 -23.43 ] +DEAL:: Quadrature point 1: [-87.43 0.00 0.00 55.43 ][23.43 0.00 0.00 -55.43 ][87.43 -110.85 0.00 -55.43 ][-23.43 110.85 0.00 55.43 ][-55.43 0.00 -110.85 23.43 ][55.43 0.00 110.85 -87.43 ][55.43 0.00 0.00 -23.43 ][-55.43 0.00 0.00 87.43 ] +DEAL:: Quadrature point 2: [23.43 -110.85 0.00 -55.43 ][-87.43 110.85 0.00 55.43 ][-23.43 0.00 0.00 55.43 ][87.43 0.00 0.00 -55.43 ][55.43 0.00 0.00 -87.43 ][-55.43 0.00 0.00 23.43 ][-55.43 0.00 -110.85 87.43 ][55.43 0.00 110.85 -23.43 ] +DEAL:: Quadrature point 3: [23.43 0.00 0.00 -55.43 ][-87.43 0.00 0.00 55.43 ][-23.43 -110.85 0.00 55.43 ][87.43 110.85 0.00 -55.43 ][-55.43 0.00 0.00 23.43 ][55.43 0.00 0.00 -87.43 ][55.43 0.00 -110.85 -23.43 ][-55.43 0.00 110.85 87.43 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [-349.70 -443.41 0.00 221.70 ][93.70 443.41 0.00 -221.70 ][349.70 0.00 0.00 -221.70 ][-93.70 0.00 0.00 221.70 ][221.70 0.00 -443.41 -349.70 ][-221.70 0.00 443.41 93.70 ][-221.70 0.00 0.00 349.70 ][221.70 0.00 0.00 -93.70 ] +DEAL:: Quadrature point 1: [-349.70 0.00 0.00 221.70 ][93.70 0.00 0.00 -221.70 ][349.70 -443.41 0.00 -221.70 ][-93.70 443.41 0.00 221.70 ][-221.70 0.00 -443.41 93.70 ][221.70 0.00 443.41 -349.70 ][221.70 0.00 0.00 -93.70 ][-221.70 0.00 0.00 349.70 ] +DEAL:: Quadrature point 2: [93.70 -443.41 0.00 -221.70 ][-349.70 443.41 0.00 221.70 ][-93.70 0.00 0.00 221.70 ][349.70 0.00 0.00 -221.70 ][221.70 0.00 0.00 -349.70 ][-221.70 0.00 0.00 93.70 ][-221.70 0.00 -443.41 349.70 ][221.70 0.00 443.41 -93.70 ] +DEAL:: Quadrature point 3: [93.70 0.00 0.00 -221.70 ][-349.70 0.00 0.00 221.70 ][-93.70 -443.41 0.00 221.70 ][349.70 443.41 0.00 -221.70 ][-221.70 0.00 0.00 93.70 ][221.70 0.00 0.00 -349.70 ][221.70 0.00 -443.41 -93.70 ][-221.70 0.00 443.41 349.70 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [-1398.81 -1773.62 0.00 886.81 ][374.81 1773.62 0.00 -886.81 ][1398.81 0.00 0.00 -886.81 ][-374.81 0.00 0.00 886.81 ][886.81 0.00 -1773.62 -1398.81 ][-886.81 0.00 1773.62 374.81 ][-886.81 0.00 0.00 1398.81 ][886.81 0.00 0.00 -374.81 ] +DEAL:: Quadrature point 1: [-1398.81 0.00 0.00 886.81 ][374.81 0.00 0.00 -886.81 ][1398.81 -1773.62 0.00 -886.81 ][-374.81 1773.62 0.00 886.81 ][-886.81 0.00 -1773.62 374.81 ][886.81 0.00 1773.62 -1398.81 ][886.81 0.00 0.00 -374.81 ][-886.81 0.00 0.00 1398.81 ] +DEAL:: Quadrature point 2: [374.81 -1773.62 0.00 -886.81 ][-1398.81 1773.62 0.00 886.81 ][-374.81 0.00 0.00 886.81 ][1398.81 0.00 0.00 -886.81 ][886.81 0.00 0.00 -1398.81 ][-886.81 0.00 0.00 374.81 ][-886.81 0.00 -1773.62 1398.81 ][886.81 0.00 1773.62 -374.81 ] +DEAL:: Quadrature point 3: [374.81 0.00 0.00 -886.81 ][-1398.81 0.00 0.00 886.81 ][-374.81 -1773.62 0.00 886.81 ][1398.81 1773.62 0.00 -886.81 ][-886.81 0.00 0.00 374.81 ][886.81 0.00 0.00 -1398.81 ][886.81 0.00 -1773.62 -374.81 ][-886.81 0.00 1773.62 1398.81 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [-5595.24 -7094.48 0.00 3547.24 ][1499.24 7094.48 0.00 -3547.24 ][5595.24 0.00 0.00 -3547.24 ][-1499.24 0.00 0.00 3547.24 ][3547.24 0.00 -7094.48 -5595.24 ][-3547.24 0.00 7094.48 1499.24 ][-3547.24 0.00 0.00 5595.24 ][3547.24 0.00 0.00 -1499.24 ] +DEAL:: Quadrature point 1: [-5595.24 0.00 0.00 3547.24 ][1499.24 0.00 0.00 -3547.24 ][5595.24 -7094.48 0.00 -3547.24 ][-1499.24 7094.48 0.00 3547.24 ][-3547.24 0.00 -7094.48 1499.24 ][3547.24 0.00 7094.48 -5595.24 ][3547.24 0.00 0.00 -1499.24 ][-3547.24 0.00 0.00 5595.24 ] +DEAL:: Quadrature point 2: [1499.24 -7094.48 0.00 -3547.24 ][-5595.24 7094.48 0.00 3547.24 ][-1499.24 0.00 0.00 3547.24 ][5595.24 0.00 0.00 -3547.24 ][3547.24 0.00 0.00 -5595.24 ][-3547.24 0.00 0.00 1499.24 ][-3547.24 0.00 -7094.48 5595.24 ][3547.24 0.00 7094.48 -1499.24 ] +DEAL:: Quadrature point 3: [1499.24 0.00 0.00 -3547.24 ][-5595.24 0.00 0.00 3547.24 ][-1499.24 -7094.48 0.00 3547.24 ][5595.24 7094.48 0.00 -3547.24 ][-3547.24 0.00 0.00 1499.24 ][3547.24 0.00 0.00 -5595.24 ][3547.24 0.00 -7094.48 -1499.24 ][-3547.24 0.00 7094.48 5595.24 ] +DEAL::Degree=2 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [-2.31 -4.62 0.00 0.56 ][-0.67 6.67 0.00 -1.11 ][-1.02 -2.04 0.00 0.56 ][0.65 0.00 0.00 -0.56 ][-2.00 0.00 0.00 1.11 ][-0.65 0.00 0.00 -0.56 ][0.56 0.00 -4.62 -2.31 ][-1.11 0.00 6.67 -0.67 ][0.56 0.00 -2.04 -1.02 ][-0.56 0.00 0.00 0.65 ][1.11 0.00 0.00 -2.00 ][-0.56 0.00 0.00 -0.65 ][6.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6.00 ] +DEAL:: Quadrature point 1: [-0.65 0.00 0.00 0.56 ][2.00 0.00 0.00 -1.11 ][0.65 0.00 0.00 0.56 ][2.31 -4.62 0.00 -0.56 ][0.67 6.67 0.00 1.11 ][1.02 -2.04 0.00 -0.56 ][0.56 0.00 2.04 -1.02 ][-1.11 0.00 -6.67 -0.67 ][0.56 0.00 4.62 -2.31 ][-0.56 0.00 0.00 -0.65 ][1.11 0.00 0.00 -2.00 ][-0.56 0.00 0.00 0.65 ][-6.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6.00 ] +DEAL:: Quadrature point 2: [-1.02 2.04 0.00 0.56 ][-0.67 -6.67 0.00 -1.11 ][-2.31 4.62 0.00 0.56 ][-0.65 0.00 0.00 -0.56 ][-2.00 0.00 0.00 1.11 ][0.65 0.00 0.00 -0.56 ][0.56 0.00 0.00 -0.65 ][-1.11 0.00 0.00 2.00 ][0.56 0.00 0.00 0.65 ][-0.56 0.00 -4.62 2.31 ][1.11 0.00 6.67 0.67 ][-0.56 0.00 -2.04 1.02 ][6.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -6.00 ] +DEAL:: Quadrature point 3: [0.65 0.00 0.00 0.56 ][2.00 0.00 0.00 -1.11 ][-0.65 0.00 0.00 0.56 ][1.02 2.04 0.00 -0.56 ][0.67 -6.67 0.00 1.11 ][2.31 4.62 0.00 -0.56 ][0.56 0.00 0.00 0.65 ][-1.11 0.00 0.00 2.00 ][0.56 0.00 0.00 -0.65 ][-0.56 0.00 2.04 1.02 ][1.11 0.00 -6.67 0.67 ][-0.56 0.00 4.62 2.31 ][-6.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -6.00 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [-9.25 -18.50 0.00 2.22 ][-2.67 26.67 0.00 -4.44 ][-4.08 -8.17 0.00 2.22 ][2.58 0.00 0.00 -2.22 ][-8.00 0.00 0.00 4.44 ][-2.58 0.00 0.00 -2.22 ][2.22 0.00 -18.50 -9.25 ][-4.44 0.00 26.67 -2.67 ][2.22 0.00 -8.17 -4.08 ][-2.22 0.00 0.00 2.58 ][4.44 0.00 0.00 -8.00 ][-2.22 0.00 0.00 -2.58 ][24.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24.00 ] +DEAL:: Quadrature point 1: [-2.58 0.00 0.00 2.22 ][8.00 0.00 0.00 -4.44 ][2.58 0.00 0.00 2.22 ][9.25 -18.50 0.00 -2.22 ][2.67 26.67 0.00 4.44 ][4.08 -8.17 0.00 -2.22 ][2.22 0.00 8.17 -4.08 ][-4.44 0.00 -26.67 -2.67 ][2.22 0.00 18.50 -9.25 ][-2.22 0.00 0.00 -2.58 ][4.44 0.00 0.00 -8.00 ][-2.22 0.00 0.00 2.58 ][-24.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24.00 ] +DEAL:: Quadrature point 2: [-4.08 8.17 0.00 2.22 ][-2.67 -26.67 0.00 -4.44 ][-9.25 18.50 0.00 2.22 ][-2.58 0.00 0.00 -2.22 ][-8.00 0.00 0.00 4.44 ][2.58 0.00 0.00 -2.22 ][2.22 0.00 0.00 -2.58 ][-4.44 0.00 0.00 8.00 ][2.22 0.00 0.00 2.58 ][-2.22 0.00 -18.50 9.25 ][4.44 0.00 26.67 2.67 ][-2.22 0.00 -8.17 4.08 ][24.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -24.00 ] +DEAL:: Quadrature point 3: [2.58 0.00 0.00 2.22 ][8.00 0.00 0.00 -4.44 ][-2.58 0.00 0.00 2.22 ][4.08 8.17 0.00 -2.22 ][2.67 -26.67 0.00 4.44 ][9.25 18.50 0.00 -2.22 ][2.22 0.00 0.00 2.58 ][-4.44 0.00 0.00 8.00 ][2.22 0.00 0.00 -2.58 ][-2.22 0.00 8.17 4.08 ][4.44 0.00 -26.67 2.67 ][-2.22 0.00 18.50 9.25 ][-24.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -24.00 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [-36.99 -73.99 0.00 8.89 ][-10.67 106.67 0.00 -17.78 ][-16.34 -32.68 0.00 8.89 ][10.33 0.00 0.00 -8.89 ][-32.00 0.00 0.00 17.78 ][-10.33 0.00 0.00 -8.89 ][8.89 0.00 -73.99 -36.99 ][-17.78 0.00 106.67 -10.67 ][8.89 0.00 -32.68 -16.34 ][-8.89 0.00 0.00 10.33 ][17.78 0.00 0.00 -32.00 ][-8.89 0.00 0.00 -10.33 ][96.00 0.00 0.00 0.00 ][0.00 0.00 0.00 96.00 ] +DEAL:: Quadrature point 1: [-10.33 0.00 0.00 8.89 ][32.00 0.00 0.00 -17.78 ][10.33 0.00 0.00 8.89 ][36.99 -73.99 0.00 -8.89 ][10.67 106.67 0.00 17.78 ][16.34 -32.68 0.00 -8.89 ][8.89 0.00 32.68 -16.34 ][-17.78 0.00 -106.67 -10.67 ][8.89 0.00 73.99 -36.99 ][-8.89 0.00 0.00 -10.33 ][17.78 0.00 0.00 -32.00 ][-8.89 0.00 0.00 10.33 ][-96.00 0.00 0.00 0.00 ][0.00 0.00 0.00 96.00 ] +DEAL:: Quadrature point 2: [-16.34 32.68 0.00 8.89 ][-10.67 -106.67 0.00 -17.78 ][-36.99 73.99 0.00 8.89 ][-10.33 0.00 0.00 -8.89 ][-32.00 0.00 0.00 17.78 ][10.33 0.00 0.00 -8.89 ][8.89 0.00 0.00 -10.33 ][-17.78 0.00 0.00 32.00 ][8.89 0.00 0.00 10.33 ][-8.89 0.00 -73.99 36.99 ][17.78 0.00 106.67 10.67 ][-8.89 0.00 -32.68 16.34 ][96.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -96.00 ] +DEAL:: Quadrature point 3: [10.33 0.00 0.00 8.89 ][32.00 0.00 0.00 -17.78 ][-10.33 0.00 0.00 8.89 ][16.34 32.68 0.00 -8.89 ][10.67 -106.67 0.00 17.78 ][36.99 73.99 0.00 -8.89 ][8.89 0.00 0.00 10.33 ][-17.78 0.00 0.00 32.00 ][8.89 0.00 0.00 -10.33 ][-8.89 0.00 32.68 16.34 ][17.78 0.00 -106.67 10.67 ][-8.89 0.00 73.99 36.99 ][-96.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -96.00 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [-147.98 -295.96 0.00 35.56 ][-42.67 426.67 0.00 -71.11 ][-65.35 -130.71 0.00 35.56 ][41.31 0.00 0.00 -35.56 ][-128.00 0.00 0.00 71.11 ][-41.31 0.00 0.00 -35.56 ][35.56 0.00 -295.96 -147.98 ][-71.11 0.00 426.67 -42.67 ][35.56 0.00 -130.71 -65.35 ][-35.56 0.00 0.00 41.31 ][71.11 0.00 0.00 -128.00 ][-35.56 0.00 0.00 -41.31 ][384.00 0.00 0.00 0.00 ][0.00 0.00 0.00 384.00 ] +DEAL:: Quadrature point 1: [-41.31 0.00 0.00 35.56 ][128.00 0.00 0.00 -71.11 ][41.31 0.00 0.00 35.56 ][147.98 -295.96 0.00 -35.56 ][42.67 426.67 0.00 71.11 ][65.35 -130.71 0.00 -35.56 ][35.56 0.00 130.71 -65.35 ][-71.11 0.00 -426.67 -42.67 ][35.56 0.00 295.96 -147.98 ][-35.56 0.00 0.00 -41.31 ][71.11 0.00 0.00 -128.00 ][-35.56 0.00 0.00 41.31 ][-384.00 0.00 0.00 0.00 ][0.00 0.00 0.00 384.00 ] +DEAL:: Quadrature point 2: [-65.35 130.71 0.00 35.56 ][-42.67 -426.67 0.00 -71.11 ][-147.98 295.96 0.00 35.56 ][-41.31 0.00 0.00 -35.56 ][-128.00 0.00 0.00 71.11 ][41.31 0.00 0.00 -35.56 ][35.56 0.00 0.00 -41.31 ][-71.11 0.00 0.00 128.00 ][35.56 0.00 0.00 41.31 ][-35.56 0.00 -295.96 147.98 ][71.11 0.00 426.67 42.67 ][-35.56 0.00 -130.71 65.35 ][384.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -384.00 ] +DEAL:: Quadrature point 3: [41.31 0.00 0.00 35.56 ][128.00 0.00 0.00 -71.11 ][-41.31 0.00 0.00 35.56 ][65.35 130.71 0.00 -35.56 ][42.67 -426.67 0.00 71.11 ][147.98 295.96 0.00 -35.56 ][35.56 0.00 0.00 41.31 ][-71.11 0.00 0.00 128.00 ][35.56 0.00 0.00 -41.31 ][-35.56 0.00 130.71 65.35 ][71.11 0.00 -426.67 42.67 ][-35.56 0.00 295.96 147.98 ][-384.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -384.00 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [-591.91 -1183.83 0.00 142.22 ][-170.67 1706.67 0.00 -284.44 ][-261.42 -522.84 0.00 142.22 ][165.25 0.00 0.00 -142.22 ][-512.00 0.00 0.00 284.44 ][-165.25 0.00 0.00 -142.22 ][142.22 0.00 -1183.83 -591.91 ][-284.44 0.00 1706.67 -170.67 ][142.22 0.00 -522.84 -261.42 ][-142.22 0.00 0.00 165.25 ][284.44 0.00 0.00 -512.00 ][-142.22 0.00 0.00 -165.25 ][1536.00 0.00 0.00 0.00 ][0.00 0.00 0.00 1536.00 ] +DEAL:: Quadrature point 1: [-165.25 0.00 0.00 142.22 ][512.00 0.00 0.00 -284.44 ][165.25 0.00 0.00 142.22 ][591.91 -1183.83 0.00 -142.22 ][170.67 1706.67 0.00 284.44 ][261.42 -522.84 0.00 -142.22 ][142.22 0.00 522.84 -261.42 ][-284.44 0.00 -1706.67 -170.67 ][142.22 0.00 1183.83 -591.91 ][-142.22 0.00 0.00 -165.25 ][284.44 0.00 0.00 -512.00 ][-142.22 0.00 0.00 165.25 ][-1536.00 0.00 0.00 0.00 ][0.00 0.00 0.00 1536.00 ] +DEAL:: Quadrature point 2: [-261.42 522.84 0.00 142.22 ][-170.67 -1706.67 0.00 -284.44 ][-591.91 1183.83 0.00 142.22 ][-165.25 0.00 0.00 -142.22 ][-512.00 0.00 0.00 284.44 ][165.25 0.00 0.00 -142.22 ][142.22 0.00 0.00 -165.25 ][-284.44 0.00 0.00 512.00 ][142.22 0.00 0.00 165.25 ][-142.22 0.00 -1183.83 591.91 ][284.44 0.00 1706.67 170.67 ][-142.22 0.00 -522.84 261.42 ][1536.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -1536.00 ] +DEAL:: Quadrature point 3: [165.25 0.00 0.00 142.22 ][512.00 0.00 0.00 -284.44 ][-165.25 0.00 0.00 142.22 ][261.42 522.84 0.00 -142.22 ][170.67 -1706.67 0.00 284.44 ][591.91 1183.83 0.00 -142.22 ][142.22 0.00 0.00 165.25 ][-284.44 0.00 0.00 512.00 ][142.22 0.00 0.00 -165.25 ][-142.22 0.00 522.84 261.42 ][284.44 0.00 -1706.67 170.67 ][-142.22 0.00 1183.83 591.91 ][-1536.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -1536.00 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [-2367.66 -4735.31 0.00 568.89 ][-682.67 6826.67 0.00 -1137.78 ][-1045.68 -2091.36 0.00 568.89 ][660.99 0.00 0.00 -568.89 ][-2048.00 0.00 0.00 1137.78 ][-660.99 0.00 0.00 -568.89 ][568.89 0.00 -4735.31 -2367.66 ][-1137.78 0.00 6826.67 -682.67 ][568.89 0.00 -2091.36 -1045.68 ][-568.89 0.00 0.00 660.99 ][1137.78 0.00 0.00 -2048.00 ][-568.89 0.00 0.00 -660.99 ][6144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6144.00 ] +DEAL:: Quadrature point 1: [-660.99 0.00 0.00 568.89 ][2048.00 0.00 0.00 -1137.78 ][660.99 0.00 0.00 568.89 ][2367.66 -4735.31 0.00 -568.89 ][682.67 6826.67 0.00 1137.78 ][1045.68 -2091.36 0.00 -568.89 ][568.89 0.00 2091.36 -1045.68 ][-1137.78 0.00 -6826.67 -682.67 ][568.89 0.00 4735.31 -2367.66 ][-568.89 0.00 0.00 -660.99 ][1137.78 0.00 0.00 -2048.00 ][-568.89 0.00 0.00 660.99 ][-6144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6144.00 ] +DEAL:: Quadrature point 2: [-1045.68 2091.36 0.00 568.89 ][-682.67 -6826.67 0.00 -1137.78 ][-2367.66 4735.31 0.00 568.89 ][-660.99 0.00 0.00 -568.89 ][-2048.00 0.00 0.00 1137.78 ][660.99 0.00 0.00 -568.89 ][568.89 0.00 0.00 -660.99 ][-1137.78 0.00 0.00 2048.00 ][568.89 0.00 0.00 660.99 ][-568.89 0.00 -4735.31 2367.66 ][1137.78 0.00 6826.67 682.67 ][-568.89 0.00 -2091.36 1045.68 ][6144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -6144.00 ] +DEAL:: Quadrature point 3: [660.99 0.00 0.00 568.89 ][2048.00 0.00 0.00 -1137.78 ][-660.99 0.00 0.00 568.89 ][1045.68 2091.36 0.00 -568.89 ][682.67 -6826.67 0.00 1137.78 ][2367.66 4735.31 0.00 -568.89 ][568.89 0.00 0.00 660.99 ][-1137.78 0.00 0.00 2048.00 ][568.89 0.00 0.00 -660.99 ][-568.89 0.00 2091.36 1045.68 ][1137.78 0.00 -6826.67 682.67 ][-568.89 0.00 4735.31 2367.66 ][-6144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -6144.00 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [-9470.62 -18941.25 0.00 2275.56 ][-2730.67 27306.67 0.00 -4551.11 ][-4182.71 -8365.42 0.00 2275.56 ][2643.96 0.00 0.00 -2275.56 ][-8192.00 0.00 0.00 4551.11 ][-2643.96 0.00 0.00 -2275.56 ][2275.56 0.00 -18941.25 -9470.62 ][-4551.11 0.00 27306.67 -2730.67 ][2275.56 0.00 -8365.42 -4182.71 ][-2275.56 0.00 0.00 2643.96 ][4551.11 0.00 0.00 -8192.00 ][-2275.56 0.00 0.00 -2643.96 ][24576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24576.00 ] +DEAL:: Quadrature point 1: [-2643.96 0.00 0.00 2275.56 ][8192.00 0.00 0.00 -4551.11 ][2643.96 0.00 0.00 2275.56 ][9470.62 -18941.25 0.00 -2275.56 ][2730.67 27306.67 0.00 4551.11 ][4182.71 -8365.42 0.00 -2275.56 ][2275.56 0.00 8365.42 -4182.71 ][-4551.11 0.00 -27306.67 -2730.67 ][2275.56 0.00 18941.25 -9470.62 ][-2275.56 0.00 0.00 -2643.96 ][4551.11 0.00 0.00 -8192.00 ][-2275.56 0.00 0.00 2643.96 ][-24576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24576.00 ] +DEAL:: Quadrature point 2: [-4182.71 8365.42 0.00 2275.56 ][-2730.67 -27306.67 0.00 -4551.11 ][-9470.62 18941.25 0.00 2275.56 ][-2643.96 0.00 0.00 -2275.56 ][-8192.00 0.00 0.00 4551.11 ][2643.96 0.00 0.00 -2275.56 ][2275.56 0.00 0.00 -2643.96 ][-4551.11 0.00 0.00 8192.00 ][2275.56 0.00 0.00 2643.96 ][-2275.56 0.00 -18941.25 9470.62 ][4551.11 0.00 27306.67 2730.67 ][-2275.56 0.00 -8365.42 4182.71 ][24576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -24576.00 ] +DEAL:: Quadrature point 3: [2643.96 0.00 0.00 2275.56 ][8192.00 0.00 0.00 -4551.11 ][-2643.96 0.00 0.00 2275.56 ][4182.71 8365.42 0.00 -2275.56 ][2730.67 -27306.67 0.00 4551.11 ][9470.62 18941.25 0.00 -2275.56 ][2275.56 0.00 0.00 2643.96 ][-4551.11 0.00 0.00 8192.00 ][2275.56 0.00 0.00 -2643.96 ][-2275.56 0.00 8365.42 4182.71 ][4551.11 0.00 -27306.67 2730.67 ][-2275.56 0.00 18941.25 9470.62 ][-24576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -24576.00 ] +DEAL::Degree=3 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [-4.27 -8.55 0.00 0.37 ][-2.79 13.81 0.00 -0.94 ][-2.01 -7.42 0.00 0.94 ][0.07 2.16 0.00 -0.37 ][0.53 0.00 0.00 -0.37 ][-1.16 0.00 0.00 0.94 ][2.05 0.00 0.00 -0.94 ][1.58 0.00 0.00 0.37 ][0.37 0.00 -8.55 -4.27 ][-0.94 0.00 13.81 -2.79 ][0.94 0.00 -7.42 -2.01 ][-0.37 0.00 2.16 0.07 ][-0.37 0.00 0.00 0.53 ][0.94 0.00 0.00 -1.16 ][-0.94 0.00 0.00 2.05 ][0.37 0.00 0.00 1.58 ][54.00 0.00 0.00 0.00 ][-60.00 0.00 0.00 0.00 ][-36.00 0.00 0.00 0.00 ][0.00 0.00 0.00 54.00 ][0.00 0.00 0.00 -36.00 ][0.00 0.00 0.00 -60.00 ] +DEAL:: Quadrature point 1: [-0.53 0.00 0.00 0.37 ][1.16 0.00 0.00 -0.94 ][-2.05 0.00 0.00 0.94 ][-1.58 0.00 0.00 -0.37 ][4.27 -8.55 0.00 -0.37 ][2.79 13.81 0.00 0.94 ][2.01 -7.42 0.00 -0.94 ][-0.07 2.16 0.00 0.37 ][-0.37 0.00 -2.16 0.07 ][0.94 0.00 7.42 -2.01 ][-0.94 0.00 -13.81 -2.79 ][0.37 0.00 8.55 -4.27 ][0.37 0.00 0.00 1.58 ][-0.94 0.00 0.00 2.05 ][0.94 0.00 0.00 -1.16 ][-0.37 0.00 0.00 0.53 ][6.00 0.00 0.00 0.00 ][-60.00 0.00 0.00 0.00 ][36.00 0.00 0.00 0.00 ][0.00 0.00 0.00 18.00 ][0.00 0.00 0.00 36.00 ][0.00 0.00 0.00 -60.00 ] +DEAL:: Quadrature point 2: [0.07 -2.16 0.00 -0.37 ][-2.01 7.42 0.00 0.94 ][-2.79 -13.81 0.00 -0.94 ][-4.27 8.55 0.00 0.37 ][1.58 0.00 0.00 0.37 ][2.05 0.00 0.00 -0.94 ][-1.16 0.00 0.00 0.94 ][0.53 0.00 0.00 -0.37 ][0.37 0.00 0.00 -0.53 ][-0.94 0.00 0.00 1.16 ][0.94 0.00 0.00 -2.05 ][-0.37 0.00 0.00 -1.58 ][-0.37 0.00 -8.55 4.27 ][0.94 0.00 13.81 2.79 ][-0.94 0.00 -7.42 2.01 ][0.37 0.00 2.16 -0.07 ][18.00 0.00 0.00 0.00 ][-60.00 0.00 0.00 0.00 ][36.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6.00 ][0.00 0.00 0.00 36.00 ][0.00 0.00 0.00 -60.00 ] +DEAL:: Quadrature point 3: [-1.58 0.00 0.00 -0.37 ][-2.05 0.00 0.00 0.94 ][1.16 0.00 0.00 -0.94 ][-0.53 0.00 0.00 0.37 ][-0.07 -2.16 0.00 0.37 ][2.01 7.42 0.00 -0.94 ][2.79 -13.81 0.00 0.94 ][4.27 8.55 0.00 -0.37 ][-0.37 0.00 0.00 -1.58 ][0.94 0.00 0.00 -2.05 ][-0.94 0.00 0.00 1.16 ][0.37 0.00 0.00 -0.53 ][0.37 0.00 -2.16 -0.07 ][-0.94 0.00 7.42 2.01 ][0.94 0.00 -13.81 2.79 ][-0.37 0.00 8.55 4.27 ][42.00 0.00 0.00 0.00 ][-60.00 0.00 0.00 0.00 ][-36.00 0.00 0.00 0.00 ][0.00 0.00 0.00 42.00 ][0.00 0.00 0.00 -36.00 ][0.00 0.00 0.00 -60.00 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [-17.06 -34.18 0.00 1.48 ][-11.17 55.23 0.00 -3.76 ][-8.05 -29.67 0.00 3.76 ][0.28 8.62 0.00 -1.48 ][2.11 0.00 0.00 -1.48 ][-4.64 0.00 0.00 3.76 ][8.20 0.00 0.00 -3.76 ][6.33 0.00 0.00 1.48 ][1.48 0.00 -34.18 -17.06 ][-3.76 0.00 55.23 -11.17 ][3.76 0.00 -29.67 -8.05 ][-1.48 0.00 8.62 0.28 ][-1.48 0.00 0.00 2.11 ][3.76 0.00 0.00 -4.64 ][-3.76 0.00 0.00 8.20 ][1.48 0.00 0.00 6.33 ][216.00 0.00 0.00 0.00 ][-240.00 0.00 0.00 0.00 ][-144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 216.00 ][0.00 0.00 0.00 -144.00 ][0.00 0.00 0.00 -240.00 ] +DEAL:: Quadrature point 1: [-2.11 0.00 0.00 1.48 ][4.64 0.00 0.00 -3.76 ][-8.20 0.00 0.00 3.76 ][-6.33 0.00 0.00 -1.48 ][17.06 -34.18 0.00 -1.48 ][11.17 55.23 0.00 3.76 ][8.05 -29.67 0.00 -3.76 ][-0.28 8.62 0.00 1.48 ][-1.48 0.00 -8.62 0.28 ][3.76 0.00 29.67 -8.05 ][-3.76 0.00 -55.23 -11.17 ][1.48 0.00 34.18 -17.06 ][1.48 0.00 0.00 6.33 ][-3.76 0.00 0.00 8.20 ][3.76 0.00 0.00 -4.64 ][-1.48 0.00 0.00 2.11 ][24.00 0.00 0.00 0.00 ][-240.00 0.00 0.00 0.00 ][144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 72.00 ][0.00 0.00 0.00 144.00 ][0.00 0.00 0.00 -240.00 ] +DEAL:: Quadrature point 2: [0.28 -8.62 0.00 -1.48 ][-8.05 29.67 0.00 3.76 ][-11.17 -55.23 0.00 -3.76 ][-17.06 34.18 0.00 1.48 ][6.33 0.00 0.00 1.48 ][8.20 0.00 0.00 -3.76 ][-4.64 0.00 0.00 3.76 ][2.11 0.00 0.00 -1.48 ][1.48 0.00 0.00 -2.11 ][-3.76 0.00 0.00 4.64 ][3.76 0.00 0.00 -8.20 ][-1.48 0.00 0.00 -6.33 ][-1.48 0.00 -34.18 17.06 ][3.76 0.00 55.23 11.17 ][-3.76 0.00 -29.67 8.05 ][1.48 0.00 8.62 -0.28 ][72.00 0.00 0.00 0.00 ][-240.00 0.00 0.00 0.00 ][144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24.00 ][0.00 0.00 0.00 144.00 ][0.00 0.00 0.00 -240.00 ] +DEAL:: Quadrature point 3: [-6.33 0.00 0.00 -1.48 ][-8.20 0.00 0.00 3.76 ][4.64 0.00 0.00 -3.76 ][-2.11 0.00 0.00 1.48 ][-0.28 -8.62 0.00 1.48 ][8.05 29.67 0.00 -3.76 ][11.17 -55.23 0.00 3.76 ][17.06 34.18 0.00 -1.48 ][-1.48 0.00 0.00 -6.33 ][3.76 0.00 0.00 -8.20 ][-3.76 0.00 0.00 4.64 ][1.48 0.00 0.00 -2.11 ][1.48 0.00 -8.62 -0.28 ][-3.76 0.00 29.67 8.05 ][3.76 0.00 -55.23 11.17 ][-1.48 0.00 34.18 17.06 ][168.00 0.00 0.00 0.00 ][-240.00 0.00 0.00 0.00 ][-144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 168.00 ][0.00 0.00 0.00 -144.00 ][0.00 0.00 0.00 -240.00 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [-68.26 -136.74 0.00 5.94 ][-44.68 220.91 0.00 -15.04 ][-32.19 -118.67 0.00 15.04 ][1.13 34.49 0.00 -5.94 ][8.43 0.00 0.00 -5.94 ][-18.55 0.00 0.00 15.04 ][32.81 0.00 0.00 -15.04 ][25.31 0.00 0.00 5.94 ][5.94 0.00 -136.74 -68.26 ][-15.04 0.00 220.91 -44.68 ][15.04 0.00 -118.67 -32.19 ][-5.94 0.00 34.49 1.13 ][-5.94 0.00 0.00 8.43 ][15.04 0.00 0.00 -18.55 ][-15.04 0.00 0.00 32.81 ][5.94 0.00 0.00 25.31 ][864.00 0.00 0.00 0.00 ][-960.00 0.00 0.00 0.00 ][-576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 864.00 ][0.00 0.00 0.00 -576.00 ][0.00 0.00 0.00 -960.00 ] +DEAL:: Quadrature point 1: [-8.43 0.00 0.00 5.94 ][18.55 0.00 0.00 -15.04 ][-32.81 0.00 0.00 15.04 ][-25.31 0.00 0.00 -5.94 ][68.26 -136.74 0.00 -5.94 ][44.68 220.91 0.00 15.04 ][32.19 -118.67 0.00 -15.04 ][-1.13 34.49 0.00 5.94 ][-5.94 0.00 -34.49 1.13 ][15.04 0.00 118.67 -32.19 ][-15.04 0.00 -220.91 -44.68 ][5.94 0.00 136.74 -68.26 ][5.94 0.00 0.00 25.31 ][-15.04 0.00 0.00 32.81 ][15.04 0.00 0.00 -18.55 ][-5.94 0.00 0.00 8.43 ][96.00 0.00 0.00 0.00 ][-960.00 0.00 0.00 0.00 ][576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 288.00 ][0.00 0.00 0.00 576.00 ][0.00 0.00 0.00 -960.00 ] +DEAL:: Quadrature point 2: [1.13 -34.49 0.00 -5.94 ][-32.19 118.67 0.00 15.04 ][-44.68 -220.91 0.00 -15.04 ][-68.26 136.74 0.00 5.94 ][25.31 0.00 0.00 5.94 ][32.81 0.00 0.00 -15.04 ][-18.55 0.00 0.00 15.04 ][8.43 0.00 0.00 -5.94 ][5.94 0.00 0.00 -8.43 ][-15.04 0.00 0.00 18.55 ][15.04 0.00 0.00 -32.81 ][-5.94 0.00 0.00 -25.31 ][-5.94 0.00 -136.74 68.26 ][15.04 0.00 220.91 44.68 ][-15.04 0.00 -118.67 32.19 ][5.94 0.00 34.49 -1.13 ][288.00 0.00 0.00 0.00 ][-960.00 0.00 0.00 0.00 ][576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 96.00 ][0.00 0.00 0.00 576.00 ][0.00 0.00 0.00 -960.00 ] +DEAL:: Quadrature point 3: [-25.31 0.00 0.00 -5.94 ][-32.81 0.00 0.00 15.04 ][18.55 0.00 0.00 -15.04 ][-8.43 0.00 0.00 5.94 ][-1.13 -34.49 0.00 5.94 ][32.19 118.67 0.00 -15.04 ][44.68 -220.91 0.00 15.04 ][68.26 136.74 0.00 -5.94 ][-5.94 0.00 0.00 -25.31 ][15.04 0.00 0.00 -32.81 ][-15.04 0.00 0.00 18.55 ][5.94 0.00 0.00 -8.43 ][5.94 0.00 -34.49 -1.13 ][-15.04 0.00 118.67 32.19 ][15.04 0.00 -220.91 44.68 ][-5.94 0.00 136.74 68.26 ][672.00 0.00 0.00 0.00 ][-960.00 0.00 0.00 0.00 ][-576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 672.00 ][0.00 0.00 0.00 -576.00 ][0.00 0.00 0.00 -960.00 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [-273.04 -546.95 0.00 23.75 ][-178.73 883.66 0.00 -60.15 ][-128.74 -474.69 0.00 60.15 ][4.51 137.98 0.00 -23.75 ][33.71 0.00 0.00 -23.75 ][-74.19 0.00 0.00 60.15 ][131.24 0.00 0.00 -60.15 ][101.24 0.00 0.00 23.75 ][23.75 0.00 -546.95 -273.04 ][-60.15 0.00 883.66 -178.73 ][60.15 0.00 -474.69 -128.74 ][-23.75 0.00 137.98 4.51 ][-23.75 0.00 0.00 33.71 ][60.15 0.00 0.00 -74.19 ][-60.15 0.00 0.00 131.24 ][23.75 0.00 0.00 101.24 ][3456.00 0.00 0.00 0.00 ][-3840.00 0.00 0.00 0.00 ][-2304.00 0.00 0.00 0.00 ][0.00 0.00 0.00 3456.00 ][0.00 0.00 0.00 -2304.00 ][0.00 0.00 0.00 -3840.00 ] +DEAL:: Quadrature point 1: [-33.71 0.00 0.00 23.75 ][74.19 0.00 0.00 -60.15 ][-131.24 0.00 0.00 60.15 ][-101.24 0.00 0.00 -23.75 ][273.04 -546.95 0.00 -23.75 ][178.73 883.66 0.00 60.15 ][128.74 -474.69 0.00 -60.15 ][-4.51 137.98 0.00 23.75 ][-23.75 0.00 -137.98 4.51 ][60.15 0.00 474.69 -128.74 ][-60.15 0.00 -883.66 -178.73 ][23.75 0.00 546.95 -273.04 ][23.75 0.00 0.00 101.24 ][-60.15 0.00 0.00 131.24 ][60.15 0.00 0.00 -74.19 ][-23.75 0.00 0.00 33.71 ][384.00 0.00 0.00 0.00 ][-3840.00 0.00 0.00 0.00 ][2304.00 0.00 0.00 0.00 ][0.00 0.00 0.00 1152.00 ][0.00 0.00 0.00 2304.00 ][0.00 0.00 0.00 -3840.00 ] +DEAL:: Quadrature point 2: [4.51 -137.98 0.00 -23.75 ][-128.74 474.69 0.00 60.15 ][-178.73 -883.66 0.00 -60.15 ][-273.04 546.95 0.00 23.75 ][101.24 0.00 0.00 23.75 ][131.24 0.00 0.00 -60.15 ][-74.19 0.00 0.00 60.15 ][33.71 0.00 0.00 -23.75 ][23.75 0.00 0.00 -33.71 ][-60.15 0.00 0.00 74.19 ][60.15 0.00 0.00 -131.24 ][-23.75 0.00 0.00 -101.24 ][-23.75 0.00 -546.95 273.04 ][60.15 0.00 883.66 178.73 ][-60.15 0.00 -474.69 128.74 ][23.75 0.00 137.98 -4.51 ][1152.00 0.00 0.00 0.00 ][-3840.00 0.00 0.00 0.00 ][2304.00 0.00 0.00 0.00 ][0.00 0.00 0.00 384.00 ][0.00 0.00 0.00 2304.00 ][0.00 0.00 0.00 -3840.00 ] +DEAL:: Quadrature point 3: [-101.24 0.00 0.00 -23.75 ][-131.24 0.00 0.00 60.15 ][74.19 0.00 0.00 -60.15 ][-33.71 0.00 0.00 23.75 ][-4.51 -137.98 0.00 23.75 ][128.74 474.69 0.00 -60.15 ][178.73 -883.66 0.00 60.15 ][273.04 546.95 0.00 -23.75 ][-23.75 0.00 0.00 -101.24 ][60.15 0.00 0.00 -131.24 ][-60.15 0.00 0.00 74.19 ][23.75 0.00 0.00 -33.71 ][23.75 0.00 -137.98 -4.51 ][-60.15 0.00 474.69 128.74 ][60.15 0.00 -883.66 178.73 ][-23.75 0.00 546.95 273.04 ][2688.00 0.00 0.00 0.00 ][-3840.00 0.00 0.00 0.00 ][-2304.00 0.00 0.00 0.00 ][0.00 0.00 0.00 2688.00 ][0.00 0.00 0.00 -2304.00 ][0.00 0.00 0.00 -3840.00 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [-1092.14 -2187.78 0.00 94.98 ][-714.92 3534.63 0.00 -240.58 ][-514.97 -1898.77 0.00 240.58 ][18.04 551.92 0.00 -94.98 ][134.83 0.00 0.00 -94.98 ][-296.76 0.00 0.00 240.58 ][524.96 0.00 0.00 -240.58 ][404.97 0.00 0.00 94.98 ][94.98 0.00 -2187.78 -1092.14 ][-240.58 0.00 3534.63 -714.92 ][240.58 0.00 -1898.77 -514.97 ][-94.98 0.00 551.92 18.04 ][-94.98 0.00 0.00 134.83 ][240.58 0.00 0.00 -296.76 ][-240.58 0.00 0.00 524.96 ][94.98 0.00 0.00 404.97 ][13824.00 0.00 0.00 0.00 ][-15360.00 0.00 0.00 0.00 ][-9216.00 0.00 0.00 0.00 ][0.00 0.00 0.00 13824.00 ][0.00 0.00 0.00 -9216.00 ][0.00 0.00 0.00 -15360.00 ] +DEAL:: Quadrature point 1: [-134.83 0.00 0.00 94.98 ][296.76 0.00 0.00 -240.58 ][-524.96 0.00 0.00 240.58 ][-404.97 0.00 0.00 -94.98 ][1092.14 -2187.78 0.00 -94.98 ][714.92 3534.63 0.00 240.58 ][514.97 -1898.77 0.00 -240.58 ][-18.04 551.92 0.00 94.98 ][-94.98 0.00 -551.92 18.04 ][240.58 0.00 1898.77 -514.97 ][-240.58 0.00 -3534.63 -714.92 ][94.98 0.00 2187.78 -1092.14 ][94.98 0.00 0.00 404.97 ][-240.58 0.00 0.00 524.96 ][240.58 0.00 0.00 -296.76 ][-94.98 0.00 0.00 134.83 ][1536.00 0.00 0.00 0.00 ][-15360.00 0.00 0.00 0.00 ][9216.00 0.00 0.00 0.00 ][0.00 0.00 0.00 4608.00 ][0.00 0.00 0.00 9216.00 ][0.00 0.00 0.00 -15360.00 ] +DEAL:: Quadrature point 2: [18.04 -551.92 0.00 -94.98 ][-514.97 1898.77 0.00 240.58 ][-714.92 -3534.63 0.00 -240.58 ][-1092.14 2187.78 0.00 94.98 ][404.97 0.00 0.00 94.98 ][524.96 0.00 0.00 -240.58 ][-296.76 0.00 0.00 240.58 ][134.83 0.00 0.00 -94.98 ][94.98 0.00 0.00 -134.83 ][-240.58 0.00 0.00 296.76 ][240.58 0.00 0.00 -524.96 ][-94.98 0.00 0.00 -404.97 ][-94.98 0.00 -2187.78 1092.14 ][240.58 0.00 3534.63 714.92 ][-240.58 0.00 -1898.77 514.97 ][94.98 0.00 551.92 -18.04 ][4608.00 0.00 0.00 0.00 ][-15360.00 0.00 0.00 0.00 ][9216.00 0.00 0.00 0.00 ][0.00 0.00 0.00 1536.00 ][0.00 0.00 0.00 9216.00 ][0.00 0.00 0.00 -15360.00 ] +DEAL:: Quadrature point 3: [-404.97 0.00 0.00 -94.98 ][-524.96 0.00 0.00 240.58 ][296.76 0.00 0.00 -240.58 ][-134.83 0.00 0.00 94.98 ][-18.04 -551.92 0.00 94.98 ][514.97 1898.77 0.00 -240.58 ][714.92 -3534.63 0.00 240.58 ][1092.14 2187.78 0.00 -94.98 ][-94.98 0.00 0.00 -404.97 ][240.58 0.00 0.00 -524.96 ][-240.58 0.00 0.00 296.76 ][94.98 0.00 0.00 -134.83 ][94.98 0.00 -551.92 -18.04 ][-240.58 0.00 1898.77 514.97 ][240.58 0.00 -3534.63 714.92 ][-94.98 0.00 2187.78 1092.14 ][10752.00 0.00 0.00 0.00 ][-15360.00 0.00 0.00 0.00 ][-9216.00 0.00 0.00 0.00 ][0.00 0.00 0.00 10752.00 ][0.00 0.00 0.00 -9216.00 ][0.00 0.00 0.00 -15360.00 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [-4368.57 -8751.13 0.00 379.93 ][-2859.70 14138.54 0.00 -962.33 ][-2059.89 -7595.08 0.00 962.33 ][72.17 2207.67 0.00 -379.93 ][539.31 0.00 0.00 -379.93 ][-1187.03 0.00 0.00 962.33 ][2099.85 0.00 0.00 -962.33 ][1619.88 0.00 0.00 379.93 ][379.93 0.00 -8751.13 -4368.57 ][-962.33 0.00 14138.54 -2859.70 ][962.33 0.00 -7595.08 -2059.89 ][-379.93 0.00 2207.67 72.17 ][-379.93 0.00 0.00 539.31 ][962.33 0.00 0.00 -1187.03 ][-962.33 0.00 0.00 2099.85 ][379.93 0.00 0.00 1619.88 ][55296.00 0.00 0.00 0.00 ][-61440.00 0.00 0.00 0.00 ][-36864.00 0.00 0.00 0.00 ][0.00 0.00 0.00 55296.00 ][0.00 0.00 0.00 -36864.00 ][0.00 0.00 0.00 -61440.00 ] +DEAL:: Quadrature point 1: [-539.31 0.00 0.00 379.93 ][1187.03 0.00 0.00 -962.33 ][-2099.85 0.00 0.00 962.33 ][-1619.88 0.00 0.00 -379.93 ][4368.57 -8751.13 0.00 -379.93 ][2859.70 14138.54 0.00 962.33 ][2059.89 -7595.08 0.00 -962.33 ][-72.17 2207.67 0.00 379.93 ][-379.93 0.00 -2207.67 72.17 ][962.33 0.00 7595.08 -2059.89 ][-962.33 0.00 -14138.54 -2859.70 ][379.93 0.00 8751.13 -4368.57 ][379.93 0.00 0.00 1619.88 ][-962.33 0.00 0.00 2099.85 ][962.33 0.00 0.00 -1187.03 ][-379.93 0.00 0.00 539.31 ][6144.00 0.00 0.00 0.00 ][-61440.00 0.00 0.00 0.00 ][36864.00 0.00 0.00 0.00 ][0.00 0.00 0.00 18432.00 ][0.00 0.00 0.00 36864.00 ][0.00 0.00 0.00 -61440.00 ] +DEAL:: Quadrature point 2: [72.17 -2207.67 0.00 -379.93 ][-2059.89 7595.08 0.00 962.33 ][-2859.70 -14138.54 0.00 -962.33 ][-4368.57 8751.13 0.00 379.93 ][1619.88 0.00 0.00 379.93 ][2099.85 0.00 0.00 -962.33 ][-1187.03 0.00 0.00 962.33 ][539.31 0.00 0.00 -379.93 ][379.93 0.00 0.00 -539.31 ][-962.33 0.00 0.00 1187.03 ][962.33 0.00 0.00 -2099.85 ][-379.93 0.00 0.00 -1619.88 ][-379.93 0.00 -8751.13 4368.57 ][962.33 0.00 14138.54 2859.70 ][-962.33 0.00 -7595.08 2059.89 ][379.93 0.00 2207.67 -72.17 ][18432.00 0.00 0.00 0.00 ][-61440.00 0.00 0.00 0.00 ][36864.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6144.00 ][0.00 0.00 0.00 36864.00 ][0.00 0.00 0.00 -61440.00 ] +DEAL:: Quadrature point 3: [-1619.88 0.00 0.00 -379.93 ][-2099.85 0.00 0.00 962.33 ][1187.03 0.00 0.00 -962.33 ][-539.31 0.00 0.00 379.93 ][-72.17 -2207.67 0.00 379.93 ][2059.89 7595.08 0.00 -962.33 ][2859.70 -14138.54 0.00 962.33 ][4368.57 8751.13 0.00 -379.93 ][-379.93 0.00 0.00 -1619.88 ][962.33 0.00 0.00 -2099.85 ][-962.33 0.00 0.00 1187.03 ][379.93 0.00 0.00 -539.31 ][379.93 0.00 -2207.67 -72.17 ][-962.33 0.00 7595.08 2059.89 ][962.33 0.00 -14138.54 2859.70 ][-379.93 0.00 8751.13 4368.57 ][43008.00 0.00 0.00 0.00 ][-61440.00 0.00 0.00 0.00 ][-36864.00 0.00 0.00 0.00 ][0.00 0.00 0.00 43008.00 ][0.00 0.00 0.00 -36864.00 ][0.00 0.00 0.00 -61440.00 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [-17474.29 -35004.51 0.00 1519.73 ][-11438.80 56554.16 0.00 -3849.31 ][-8239.58 -30380.32 0.00 3849.31 ][288.66 8830.68 0.00 -1519.73 ][2157.22 0.00 0.00 -1519.73 ][-4748.14 0.00 0.00 3849.31 ][8399.39 0.00 0.00 -3849.31 ][6479.52 0.00 0.00 1519.73 ][1519.73 0.00 -35004.51 -17474.29 ][-3849.31 0.00 56554.16 -11438.80 ][3849.31 0.00 -30380.32 -8239.58 ][-1519.73 0.00 8830.68 288.66 ][-1519.73 0.00 0.00 2157.22 ][3849.31 0.00 0.00 -4748.14 ][-3849.31 0.00 0.00 8399.39 ][1519.73 0.00 0.00 6479.52 ][221184.00 0.00 0.00 0.00 ][-245760.00 0.00 0.00 0.00 ][-147456.00 0.00 0.00 0.00 ][0.00 0.00 0.00 221184.00 ][0.00 0.00 0.00 -147456.00 ][0.00 0.00 0.00 -245760.00 ] +DEAL:: Quadrature point 1: [-2157.22 0.00 0.00 1519.73 ][4748.14 0.00 0.00 -3849.31 ][-8399.39 0.00 0.00 3849.31 ][-6479.52 0.00 0.00 -1519.73 ][17474.29 -35004.51 0.00 -1519.73 ][11438.80 56554.16 0.00 3849.31 ][8239.58 -30380.32 0.00 -3849.31 ][-288.66 8830.68 0.00 1519.73 ][-1519.73 0.00 -8830.68 288.66 ][3849.31 0.00 30380.32 -8239.58 ][-3849.31 0.00 -56554.16 -11438.80 ][1519.73 0.00 35004.51 -17474.29 ][1519.73 0.00 0.00 6479.52 ][-3849.31 0.00 0.00 8399.39 ][3849.31 0.00 0.00 -4748.14 ][-1519.73 0.00 0.00 2157.22 ][24576.00 0.00 0.00 0.00 ][-245760.00 0.00 0.00 0.00 ][147456.00 0.00 0.00 0.00 ][0.00 0.00 0.00 73728.00 ][0.00 0.00 0.00 147456.00 ][0.00 0.00 0.00 -245760.00 ] +DEAL:: Quadrature point 2: [288.66 -8830.68 0.00 -1519.73 ][-8239.58 30380.32 0.00 3849.31 ][-11438.80 -56554.16 0.00 -3849.31 ][-17474.29 35004.51 0.00 1519.73 ][6479.52 0.00 0.00 1519.73 ][8399.39 0.00 0.00 -3849.31 ][-4748.14 0.00 0.00 3849.31 ][2157.22 0.00 0.00 -1519.73 ][1519.73 0.00 0.00 -2157.22 ][-3849.31 0.00 0.00 4748.14 ][3849.31 0.00 0.00 -8399.39 ][-1519.73 0.00 0.00 -6479.52 ][-1519.73 0.00 -35004.51 17474.29 ][3849.31 0.00 56554.16 11438.80 ][-3849.31 0.00 -30380.32 8239.58 ][1519.73 0.00 8830.68 -288.66 ][73728.00 0.00 0.00 0.00 ][-245760.00 0.00 0.00 0.00 ][147456.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24576.00 ][0.00 0.00 0.00 147456.00 ][0.00 0.00 0.00 -245760.00 ] +DEAL:: Quadrature point 3: [-6479.52 0.00 0.00 -1519.73 ][-8399.39 0.00 0.00 3849.31 ][4748.14 0.00 0.00 -3849.31 ][-2157.22 0.00 0.00 1519.73 ][-288.66 -8830.68 0.00 1519.73 ][8239.58 30380.32 0.00 -3849.31 ][11438.80 -56554.16 0.00 3849.31 ][17474.29 35004.51 0.00 -1519.73 ][-1519.73 0.00 0.00 -6479.52 ][3849.31 0.00 0.00 -8399.39 ][-3849.31 0.00 0.00 4748.14 ][1519.73 0.00 0.00 -2157.22 ][1519.73 0.00 -8830.68 -288.66 ][-3849.31 0.00 30380.32 8239.58 ][3849.31 0.00 -56554.16 11438.80 ][-1519.73 0.00 35004.51 17474.29 ][172032.00 0.00 0.00 0.00 ][-245760.00 0.00 0.00 0.00 ][-147456.00 0.00 0.00 0.00 ][0.00 0.00 0.00 172032.00 ][0.00 0.00 0.00 -147456.00 ][0.00 0.00 0.00 -245760.00 ] diff --git a/tests/fe/bdm_13.cc b/tests/fe/bdm_13.cc new file mode 100644 index 0000000000..d05e9d5095 --- /dev/null +++ b/tests/fe/bdm_13.cc @@ -0,0 +1,107 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2003 - 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. +// +// --------------------------------------------------------------------- + + +// Like rt_11, but for gradients (just as rt_12 is to rt_10) +// +// the test used to fail because of the issue with computing the +// normals using FEFaceValue, where FEFaceValue by accident uses the +// *face* mapping, not the *cell* mapping to compute the Piola +// transform (leading to a missing power of h in the determinant) + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define PRECISION 2 + + +std::ofstream logfile ("output"); + +template +void +test (const unsigned int degree) +{ + FE_BDM fe_rt(degree); + + deallog << "Degree=" << degree + << std::endl; + + for (double h=1; h>1./128; h/=2) + { + deallog << " h=" << h + << std::endl; + + Triangulation tr; + GridGenerator::hyper_cube(tr, 0., h); + + DoFHandler dof(tr); + dof.distribute_dofs(fe_rt); + + QTrapez quadrature; + + FEFaceValues fe_values (fe_rt, quadrature, update_gradients); + fe_values.reinit (dof.begin_active(), 0); + for (unsigned int q=0; q(i); + + return 0; +} + + + diff --git a/tests/fe/bdm_13.output b/tests/fe/bdm_13.output new file mode 100644 index 0000000000..31aaf01dc3 --- /dev/null +++ b/tests/fe/bdm_13.output @@ -0,0 +1,67 @@ + +DEAL::Degree=1 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [-1.37 -1.73 0.00 0.87 ][0.37 1.73 0.00 -0.87 ][1.37 0.00 0.00 -0.87 ][-0.37 0.00 0.00 0.87 ][0.87 0.00 -1.73 -1.37 ][-0.87 0.00 1.73 0.37 ][-0.87 0.00 0.00 1.37 ][0.87 0.00 0.00 -0.37 ] +DEAL:: Quadrature point 1: [0.37 -1.73 0.00 -0.87 ][-1.37 1.73 0.00 0.87 ][-0.37 0.00 0.00 0.87 ][1.37 0.00 0.00 -0.87 ][0.87 0.00 0.00 -1.37 ][-0.87 0.00 0.00 0.37 ][-0.87 0.00 -1.73 1.37 ][0.87 0.00 1.73 -0.37 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [-5.46 -6.93 0.00 3.46 ][1.46 6.93 0.00 -3.46 ][5.46 0.00 0.00 -3.46 ][-1.46 0.00 0.00 3.46 ][3.46 0.00 -6.93 -5.46 ][-3.46 0.00 6.93 1.46 ][-3.46 0.00 0.00 5.46 ][3.46 0.00 0.00 -1.46 ] +DEAL:: Quadrature point 1: [1.46 -6.93 0.00 -3.46 ][-5.46 6.93 0.00 3.46 ][-1.46 0.00 0.00 3.46 ][5.46 0.00 0.00 -3.46 ][3.46 0.00 0.00 -5.46 ][-3.46 0.00 0.00 1.46 ][-3.46 0.00 -6.93 5.46 ][3.46 0.00 6.93 -1.46 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [-21.86 -27.71 0.00 13.86 ][5.86 27.71 0.00 -13.86 ][21.86 0.00 0.00 -13.86 ][-5.86 0.00 0.00 13.86 ][13.86 0.00 -27.71 -21.86 ][-13.86 0.00 27.71 5.86 ][-13.86 0.00 0.00 21.86 ][13.86 0.00 0.00 -5.86 ] +DEAL:: Quadrature point 1: [5.86 -27.71 0.00 -13.86 ][-21.86 27.71 0.00 13.86 ][-5.86 0.00 0.00 13.86 ][21.86 0.00 0.00 -13.86 ][13.86 0.00 0.00 -21.86 ][-13.86 0.00 0.00 5.86 ][-13.86 0.00 -27.71 21.86 ][13.86 0.00 27.71 -5.86 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [-87.43 -110.85 0.00 55.43 ][23.43 110.85 0.00 -55.43 ][87.43 0.00 0.00 -55.43 ][-23.43 0.00 0.00 55.43 ][55.43 0.00 -110.85 -87.43 ][-55.43 0.00 110.85 23.43 ][-55.43 0.00 0.00 87.43 ][55.43 0.00 0.00 -23.43 ] +DEAL:: Quadrature point 1: [23.43 -110.85 0.00 -55.43 ][-87.43 110.85 0.00 55.43 ][-23.43 0.00 0.00 55.43 ][87.43 0.00 0.00 -55.43 ][55.43 0.00 0.00 -87.43 ][-55.43 0.00 0.00 23.43 ][-55.43 0.00 -110.85 87.43 ][55.43 0.00 110.85 -23.43 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [-349.70 -443.41 0.00 221.70 ][93.70 443.41 0.00 -221.70 ][349.70 0.00 0.00 -221.70 ][-93.70 0.00 0.00 221.70 ][221.70 0.00 -443.41 -349.70 ][-221.70 0.00 443.41 93.70 ][-221.70 0.00 0.00 349.70 ][221.70 0.00 0.00 -93.70 ] +DEAL:: Quadrature point 1: [93.70 -443.41 0.00 -221.70 ][-349.70 443.41 0.00 221.70 ][-93.70 0.00 0.00 221.70 ][349.70 0.00 0.00 -221.70 ][221.70 0.00 0.00 -349.70 ][-221.70 0.00 0.00 93.70 ][-221.70 0.00 -443.41 349.70 ][221.70 0.00 443.41 -93.70 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [-1398.81 -1773.62 0.00 886.81 ][374.81 1773.62 0.00 -886.81 ][1398.81 0.00 0.00 -886.81 ][-374.81 0.00 0.00 886.81 ][886.81 0.00 -1773.62 -1398.81 ][-886.81 0.00 1773.62 374.81 ][-886.81 0.00 0.00 1398.81 ][886.81 0.00 0.00 -374.81 ] +DEAL:: Quadrature point 1: [374.81 -1773.62 0.00 -886.81 ][-1398.81 1773.62 0.00 886.81 ][-374.81 0.00 0.00 886.81 ][1398.81 0.00 0.00 -886.81 ][886.81 0.00 0.00 -1398.81 ][-886.81 0.00 0.00 374.81 ][-886.81 0.00 -1773.62 1398.81 ][886.81 0.00 1773.62 -374.81 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [-5595.24 -7094.48 0.00 3547.24 ][1499.24 7094.48 0.00 -3547.24 ][5595.24 0.00 0.00 -3547.24 ][-1499.24 0.00 0.00 3547.24 ][3547.24 0.00 -7094.48 -5595.24 ][-3547.24 0.00 7094.48 1499.24 ][-3547.24 0.00 0.00 5595.24 ][3547.24 0.00 0.00 -1499.24 ] +DEAL:: Quadrature point 1: [1499.24 -7094.48 0.00 -3547.24 ][-5595.24 7094.48 0.00 3547.24 ][-1499.24 0.00 0.00 3547.24 ][5595.24 0.00 0.00 -3547.24 ][3547.24 0.00 0.00 -5595.24 ][-3547.24 0.00 0.00 1499.24 ][-3547.24 0.00 -7094.48 5595.24 ][3547.24 0.00 7094.48 -1499.24 ] +DEAL::Degree=2 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [-2.31 -4.62 0.00 0.56 ][-0.67 6.67 0.00 -1.11 ][-1.02 -2.04 0.00 0.56 ][0.65 0.00 0.00 -0.56 ][-2.00 0.00 0.00 1.11 ][-0.65 0.00 0.00 -0.56 ][0.56 0.00 -4.62 -2.31 ][-1.11 0.00 6.67 -0.67 ][0.56 0.00 -2.04 -1.02 ][-0.56 0.00 0.00 0.65 ][1.11 0.00 0.00 -2.00 ][-0.56 0.00 0.00 -0.65 ][6.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6.00 ] +DEAL:: Quadrature point 1: [-1.02 2.04 0.00 0.56 ][-0.67 -6.67 0.00 -1.11 ][-2.31 4.62 0.00 0.56 ][-0.65 0.00 0.00 -0.56 ][-2.00 0.00 0.00 1.11 ][0.65 0.00 0.00 -0.56 ][0.56 0.00 0.00 -0.65 ][-1.11 0.00 0.00 2.00 ][0.56 0.00 0.00 0.65 ][-0.56 0.00 -4.62 2.31 ][1.11 0.00 6.67 0.67 ][-0.56 0.00 -2.04 1.02 ][6.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -6.00 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [-9.25 -18.50 0.00 2.22 ][-2.67 26.67 0.00 -4.44 ][-4.08 -8.17 0.00 2.22 ][2.58 0.00 0.00 -2.22 ][-8.00 0.00 0.00 4.44 ][-2.58 0.00 0.00 -2.22 ][2.22 0.00 -18.50 -9.25 ][-4.44 0.00 26.67 -2.67 ][2.22 0.00 -8.17 -4.08 ][-2.22 0.00 0.00 2.58 ][4.44 0.00 0.00 -8.00 ][-2.22 0.00 0.00 -2.58 ][24.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24.00 ] +DEAL:: Quadrature point 1: [-4.08 8.17 0.00 2.22 ][-2.67 -26.67 0.00 -4.44 ][-9.25 18.50 0.00 2.22 ][-2.58 0.00 0.00 -2.22 ][-8.00 0.00 0.00 4.44 ][2.58 0.00 0.00 -2.22 ][2.22 0.00 0.00 -2.58 ][-4.44 0.00 0.00 8.00 ][2.22 0.00 0.00 2.58 ][-2.22 0.00 -18.50 9.25 ][4.44 0.00 26.67 2.67 ][-2.22 0.00 -8.17 4.08 ][24.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -24.00 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [-36.99 -73.99 0.00 8.89 ][-10.67 106.67 0.00 -17.78 ][-16.34 -32.68 0.00 8.89 ][10.33 0.00 0.00 -8.89 ][-32.00 0.00 0.00 17.78 ][-10.33 0.00 0.00 -8.89 ][8.89 0.00 -73.99 -36.99 ][-17.78 0.00 106.67 -10.67 ][8.89 0.00 -32.68 -16.34 ][-8.89 0.00 0.00 10.33 ][17.78 0.00 0.00 -32.00 ][-8.89 0.00 0.00 -10.33 ][96.00 0.00 0.00 0.00 ][0.00 0.00 0.00 96.00 ] +DEAL:: Quadrature point 1: [-16.34 32.68 0.00 8.89 ][-10.67 -106.67 0.00 -17.78 ][-36.99 73.99 0.00 8.89 ][-10.33 0.00 0.00 -8.89 ][-32.00 0.00 0.00 17.78 ][10.33 0.00 0.00 -8.89 ][8.89 0.00 0.00 -10.33 ][-17.78 0.00 0.00 32.00 ][8.89 0.00 0.00 10.33 ][-8.89 0.00 -73.99 36.99 ][17.78 0.00 106.67 10.67 ][-8.89 0.00 -32.68 16.34 ][96.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -96.00 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [-147.98 -295.96 0.00 35.56 ][-42.67 426.67 0.00 -71.11 ][-65.35 -130.71 0.00 35.56 ][41.31 0.00 0.00 -35.56 ][-128.00 0.00 0.00 71.11 ][-41.31 0.00 0.00 -35.56 ][35.56 0.00 -295.96 -147.98 ][-71.11 0.00 426.67 -42.67 ][35.56 0.00 -130.71 -65.35 ][-35.56 0.00 0.00 41.31 ][71.11 0.00 0.00 -128.00 ][-35.56 0.00 0.00 -41.31 ][384.00 0.00 0.00 0.00 ][0.00 0.00 0.00 384.00 ] +DEAL:: Quadrature point 1: [-65.35 130.71 0.00 35.56 ][-42.67 -426.67 0.00 -71.11 ][-147.98 295.96 0.00 35.56 ][-41.31 0.00 0.00 -35.56 ][-128.00 0.00 0.00 71.11 ][41.31 0.00 0.00 -35.56 ][35.56 0.00 0.00 -41.31 ][-71.11 0.00 0.00 128.00 ][35.56 0.00 0.00 41.31 ][-35.56 0.00 -295.96 147.98 ][71.11 0.00 426.67 42.67 ][-35.56 0.00 -130.71 65.35 ][384.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -384.00 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [-591.91 -1183.83 0.00 142.22 ][-170.67 1706.67 0.00 -284.44 ][-261.42 -522.84 0.00 142.22 ][165.25 0.00 0.00 -142.22 ][-512.00 0.00 0.00 284.44 ][-165.25 0.00 0.00 -142.22 ][142.22 0.00 -1183.83 -591.91 ][-284.44 0.00 1706.67 -170.67 ][142.22 0.00 -522.84 -261.42 ][-142.22 0.00 0.00 165.25 ][284.44 0.00 0.00 -512.00 ][-142.22 0.00 0.00 -165.25 ][1536.00 0.00 0.00 0.00 ][0.00 0.00 0.00 1536.00 ] +DEAL:: Quadrature point 1: [-261.42 522.84 0.00 142.22 ][-170.67 -1706.67 0.00 -284.44 ][-591.91 1183.83 0.00 142.22 ][-165.25 0.00 0.00 -142.22 ][-512.00 0.00 0.00 284.44 ][165.25 0.00 0.00 -142.22 ][142.22 0.00 0.00 -165.25 ][-284.44 0.00 0.00 512.00 ][142.22 0.00 0.00 165.25 ][-142.22 0.00 -1183.83 591.91 ][284.44 0.00 1706.67 170.67 ][-142.22 0.00 -522.84 261.42 ][1536.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -1536.00 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [-2367.66 -4735.31 0.00 568.89 ][-682.67 6826.67 0.00 -1137.78 ][-1045.68 -2091.36 0.00 568.89 ][660.99 0.00 0.00 -568.89 ][-2048.00 0.00 0.00 1137.78 ][-660.99 0.00 0.00 -568.89 ][568.89 0.00 -4735.31 -2367.66 ][-1137.78 0.00 6826.67 -682.67 ][568.89 0.00 -2091.36 -1045.68 ][-568.89 0.00 0.00 660.99 ][1137.78 0.00 0.00 -2048.00 ][-568.89 0.00 0.00 -660.99 ][6144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6144.00 ] +DEAL:: Quadrature point 1: [-1045.68 2091.36 0.00 568.89 ][-682.67 -6826.67 0.00 -1137.78 ][-2367.66 4735.31 0.00 568.89 ][-660.99 0.00 0.00 -568.89 ][-2048.00 0.00 0.00 1137.78 ][660.99 0.00 0.00 -568.89 ][568.89 0.00 0.00 -660.99 ][-1137.78 0.00 0.00 2048.00 ][568.89 0.00 0.00 660.99 ][-568.89 0.00 -4735.31 2367.66 ][1137.78 0.00 6826.67 682.67 ][-568.89 0.00 -2091.36 1045.68 ][6144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -6144.00 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [-9470.62 -18941.25 0.00 2275.56 ][-2730.67 27306.67 0.00 -4551.11 ][-4182.71 -8365.42 0.00 2275.56 ][2643.96 0.00 0.00 -2275.56 ][-8192.00 0.00 0.00 4551.11 ][-2643.96 0.00 0.00 -2275.56 ][2275.56 0.00 -18941.25 -9470.62 ][-4551.11 0.00 27306.67 -2730.67 ][2275.56 0.00 -8365.42 -4182.71 ][-2275.56 0.00 0.00 2643.96 ][4551.11 0.00 0.00 -8192.00 ][-2275.56 0.00 0.00 -2643.96 ][24576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24576.00 ] +DEAL:: Quadrature point 1: [-4182.71 8365.42 0.00 2275.56 ][-2730.67 -27306.67 0.00 -4551.11 ][-9470.62 18941.25 0.00 2275.56 ][-2643.96 0.00 0.00 -2275.56 ][-8192.00 0.00 0.00 4551.11 ][2643.96 0.00 0.00 -2275.56 ][2275.56 0.00 0.00 -2643.96 ][-4551.11 0.00 0.00 8192.00 ][2275.56 0.00 0.00 2643.96 ][-2275.56 0.00 -18941.25 9470.62 ][4551.11 0.00 27306.67 2730.67 ][-2275.56 0.00 -8365.42 4182.71 ][24576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -24576.00 ] +DEAL::Degree=3 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [-4.27 -8.55 0.00 0.37 ][-2.79 13.81 0.00 -0.94 ][-2.01 -7.42 0.00 0.94 ][0.07 2.16 0.00 -0.37 ][0.53 0.00 0.00 -0.37 ][-1.16 0.00 0.00 0.94 ][2.05 0.00 0.00 -0.94 ][1.58 0.00 0.00 0.37 ][0.37 0.00 -8.55 -4.27 ][-0.94 0.00 13.81 -2.79 ][0.94 0.00 -7.42 -2.01 ][-0.37 0.00 2.16 0.07 ][-0.37 0.00 0.00 0.53 ][0.94 0.00 0.00 -1.16 ][-0.94 0.00 0.00 2.05 ][0.37 0.00 0.00 1.58 ][54.00 0.00 0.00 0.00 ][-60.00 0.00 0.00 0.00 ][-36.00 0.00 0.00 0.00 ][0.00 0.00 0.00 54.00 ][0.00 0.00 0.00 -36.00 ][0.00 0.00 0.00 -60.00 ] +DEAL:: Quadrature point 1: [0.07 -2.16 0.00 -0.37 ][-2.01 7.42 0.00 0.94 ][-2.79 -13.81 0.00 -0.94 ][-4.27 8.55 0.00 0.37 ][1.58 0.00 0.00 0.37 ][2.05 0.00 0.00 -0.94 ][-1.16 0.00 0.00 0.94 ][0.53 0.00 0.00 -0.37 ][0.37 0.00 0.00 -0.53 ][-0.94 0.00 0.00 1.16 ][0.94 0.00 0.00 -2.05 ][-0.37 0.00 0.00 -1.58 ][-0.37 0.00 -8.55 4.27 ][0.94 0.00 13.81 2.79 ][-0.94 0.00 -7.42 2.01 ][0.37 0.00 2.16 -0.07 ][18.00 0.00 0.00 0.00 ][-60.00 0.00 0.00 0.00 ][36.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6.00 ][0.00 0.00 0.00 36.00 ][0.00 0.00 0.00 -60.00 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [-17.06 -34.18 0.00 1.48 ][-11.17 55.23 0.00 -3.76 ][-8.05 -29.67 0.00 3.76 ][0.28 8.62 0.00 -1.48 ][2.11 0.00 0.00 -1.48 ][-4.64 0.00 0.00 3.76 ][8.20 0.00 0.00 -3.76 ][6.33 0.00 0.00 1.48 ][1.48 0.00 -34.18 -17.06 ][-3.76 0.00 55.23 -11.17 ][3.76 0.00 -29.67 -8.05 ][-1.48 0.00 8.62 0.28 ][-1.48 0.00 0.00 2.11 ][3.76 0.00 0.00 -4.64 ][-3.76 0.00 0.00 8.20 ][1.48 0.00 0.00 6.33 ][216.00 0.00 0.00 0.00 ][-240.00 0.00 0.00 0.00 ][-144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 216.00 ][0.00 0.00 0.00 -144.00 ][0.00 0.00 0.00 -240.00 ] +DEAL:: Quadrature point 1: [0.28 -8.62 0.00 -1.48 ][-8.05 29.67 0.00 3.76 ][-11.17 -55.23 0.00 -3.76 ][-17.06 34.18 0.00 1.48 ][6.33 0.00 0.00 1.48 ][8.20 0.00 0.00 -3.76 ][-4.64 0.00 0.00 3.76 ][2.11 0.00 0.00 -1.48 ][1.48 0.00 0.00 -2.11 ][-3.76 0.00 0.00 4.64 ][3.76 0.00 0.00 -8.20 ][-1.48 0.00 0.00 -6.33 ][-1.48 0.00 -34.18 17.06 ][3.76 0.00 55.23 11.17 ][-3.76 0.00 -29.67 8.05 ][1.48 0.00 8.62 -0.28 ][72.00 0.00 0.00 0.00 ][-240.00 0.00 0.00 0.00 ][144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24.00 ][0.00 0.00 0.00 144.00 ][0.00 0.00 0.00 -240.00 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [-68.26 -136.74 0.00 5.94 ][-44.68 220.91 0.00 -15.04 ][-32.19 -118.67 0.00 15.04 ][1.13 34.49 0.00 -5.94 ][8.43 0.00 0.00 -5.94 ][-18.55 0.00 0.00 15.04 ][32.81 0.00 0.00 -15.04 ][25.31 0.00 0.00 5.94 ][5.94 0.00 -136.74 -68.26 ][-15.04 0.00 220.91 -44.68 ][15.04 0.00 -118.67 -32.19 ][-5.94 0.00 34.49 1.13 ][-5.94 0.00 0.00 8.43 ][15.04 0.00 0.00 -18.55 ][-15.04 0.00 0.00 32.81 ][5.94 0.00 0.00 25.31 ][864.00 0.00 0.00 0.00 ][-960.00 0.00 0.00 0.00 ][-576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 864.00 ][0.00 0.00 0.00 -576.00 ][0.00 0.00 0.00 -960.00 ] +DEAL:: Quadrature point 1: [1.13 -34.49 0.00 -5.94 ][-32.19 118.67 0.00 15.04 ][-44.68 -220.91 0.00 -15.04 ][-68.26 136.74 0.00 5.94 ][25.31 0.00 0.00 5.94 ][32.81 0.00 0.00 -15.04 ][-18.55 0.00 0.00 15.04 ][8.43 0.00 0.00 -5.94 ][5.94 0.00 0.00 -8.43 ][-15.04 0.00 0.00 18.55 ][15.04 0.00 0.00 -32.81 ][-5.94 0.00 0.00 -25.31 ][-5.94 0.00 -136.74 68.26 ][15.04 0.00 220.91 44.68 ][-15.04 0.00 -118.67 32.19 ][5.94 0.00 34.49 -1.13 ][288.00 0.00 0.00 0.00 ][-960.00 0.00 0.00 0.00 ][576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 96.00 ][0.00 0.00 0.00 576.00 ][0.00 0.00 0.00 -960.00 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [-273.04 -546.95 0.00 23.75 ][-178.73 883.66 0.00 -60.15 ][-128.74 -474.69 0.00 60.15 ][4.51 137.98 0.00 -23.75 ][33.71 0.00 0.00 -23.75 ][-74.19 0.00 0.00 60.15 ][131.24 0.00 0.00 -60.15 ][101.24 0.00 0.00 23.75 ][23.75 0.00 -546.95 -273.04 ][-60.15 0.00 883.66 -178.73 ][60.15 0.00 -474.69 -128.74 ][-23.75 0.00 137.98 4.51 ][-23.75 0.00 0.00 33.71 ][60.15 0.00 0.00 -74.19 ][-60.15 0.00 0.00 131.24 ][23.75 0.00 0.00 101.24 ][3456.00 0.00 0.00 0.00 ][-3840.00 0.00 0.00 0.00 ][-2304.00 0.00 0.00 0.00 ][0.00 0.00 0.00 3456.00 ][0.00 0.00 0.00 -2304.00 ][0.00 0.00 0.00 -3840.00 ] +DEAL:: Quadrature point 1: [4.51 -137.98 0.00 -23.75 ][-128.74 474.69 0.00 60.15 ][-178.73 -883.66 0.00 -60.15 ][-273.04 546.95 0.00 23.75 ][101.24 0.00 0.00 23.75 ][131.24 0.00 0.00 -60.15 ][-74.19 0.00 0.00 60.15 ][33.71 0.00 0.00 -23.75 ][23.75 0.00 0.00 -33.71 ][-60.15 0.00 0.00 74.19 ][60.15 0.00 0.00 -131.24 ][-23.75 0.00 0.00 -101.24 ][-23.75 0.00 -546.95 273.04 ][60.15 0.00 883.66 178.73 ][-60.15 0.00 -474.69 128.74 ][23.75 0.00 137.98 -4.51 ][1152.00 0.00 0.00 0.00 ][-3840.00 0.00 0.00 0.00 ][2304.00 0.00 0.00 0.00 ][0.00 0.00 0.00 384.00 ][0.00 0.00 0.00 2304.00 ][0.00 0.00 0.00 -3840.00 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [-1092.14 -2187.78 0.00 94.98 ][-714.92 3534.63 0.00 -240.58 ][-514.97 -1898.77 0.00 240.58 ][18.04 551.92 0.00 -94.98 ][134.83 0.00 0.00 -94.98 ][-296.76 0.00 0.00 240.58 ][524.96 0.00 0.00 -240.58 ][404.97 0.00 0.00 94.98 ][94.98 0.00 -2187.78 -1092.14 ][-240.58 0.00 3534.63 -714.92 ][240.58 0.00 -1898.77 -514.97 ][-94.98 0.00 551.92 18.04 ][-94.98 0.00 0.00 134.83 ][240.58 0.00 0.00 -296.76 ][-240.58 0.00 0.00 524.96 ][94.98 0.00 0.00 404.97 ][13824.00 0.00 0.00 0.00 ][-15360.00 0.00 0.00 0.00 ][-9216.00 0.00 0.00 0.00 ][0.00 0.00 0.00 13824.00 ][0.00 0.00 0.00 -9216.00 ][0.00 0.00 0.00 -15360.00 ] +DEAL:: Quadrature point 1: [18.04 -551.92 0.00 -94.98 ][-514.97 1898.77 0.00 240.58 ][-714.92 -3534.63 0.00 -240.58 ][-1092.14 2187.78 0.00 94.98 ][404.97 0.00 0.00 94.98 ][524.96 0.00 0.00 -240.58 ][-296.76 0.00 0.00 240.58 ][134.83 0.00 0.00 -94.98 ][94.98 0.00 0.00 -134.83 ][-240.58 0.00 0.00 296.76 ][240.58 0.00 0.00 -524.96 ][-94.98 0.00 0.00 -404.97 ][-94.98 0.00 -2187.78 1092.14 ][240.58 0.00 3534.63 714.92 ][-240.58 0.00 -1898.77 514.97 ][94.98 0.00 551.92 -18.04 ][4608.00 0.00 0.00 0.00 ][-15360.00 0.00 0.00 0.00 ][9216.00 0.00 0.00 0.00 ][0.00 0.00 0.00 1536.00 ][0.00 0.00 0.00 9216.00 ][0.00 0.00 0.00 -15360.00 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [-4368.57 -8751.13 0.00 379.93 ][-2859.70 14138.54 0.00 -962.33 ][-2059.89 -7595.08 0.00 962.33 ][72.17 2207.67 0.00 -379.93 ][539.31 0.00 0.00 -379.93 ][-1187.03 0.00 0.00 962.33 ][2099.85 0.00 0.00 -962.33 ][1619.88 0.00 0.00 379.93 ][379.93 0.00 -8751.13 -4368.57 ][-962.33 0.00 14138.54 -2859.70 ][962.33 0.00 -7595.08 -2059.89 ][-379.93 0.00 2207.67 72.17 ][-379.93 0.00 0.00 539.31 ][962.33 0.00 0.00 -1187.03 ][-962.33 0.00 0.00 2099.85 ][379.93 0.00 0.00 1619.88 ][55296.00 0.00 0.00 0.00 ][-61440.00 0.00 0.00 0.00 ][-36864.00 0.00 0.00 0.00 ][0.00 0.00 0.00 55296.00 ][0.00 0.00 0.00 -36864.00 ][0.00 0.00 0.00 -61440.00 ] +DEAL:: Quadrature point 1: [72.17 -2207.67 0.00 -379.93 ][-2059.89 7595.08 0.00 962.33 ][-2859.70 -14138.54 0.00 -962.33 ][-4368.57 8751.13 0.00 379.93 ][1619.88 0.00 0.00 379.93 ][2099.85 0.00 0.00 -962.33 ][-1187.03 0.00 0.00 962.33 ][539.31 0.00 0.00 -379.93 ][379.93 0.00 0.00 -539.31 ][-962.33 0.00 0.00 1187.03 ][962.33 0.00 0.00 -2099.85 ][-379.93 0.00 0.00 -1619.88 ][-379.93 0.00 -8751.13 4368.57 ][962.33 0.00 14138.54 2859.70 ][-962.33 0.00 -7595.08 2059.89 ][379.93 0.00 2207.67 -72.17 ][18432.00 0.00 0.00 0.00 ][-61440.00 0.00 0.00 0.00 ][36864.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6144.00 ][0.00 0.00 0.00 36864.00 ][0.00 0.00 0.00 -61440.00 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [-17474.29 -35004.51 0.00 1519.73 ][-11438.80 56554.16 0.00 -3849.31 ][-8239.58 -30380.32 0.00 3849.31 ][288.66 8830.68 0.00 -1519.73 ][2157.22 0.00 0.00 -1519.73 ][-4748.14 0.00 0.00 3849.31 ][8399.39 0.00 0.00 -3849.31 ][6479.52 0.00 0.00 1519.73 ][1519.73 0.00 -35004.51 -17474.29 ][-3849.31 0.00 56554.16 -11438.80 ][3849.31 0.00 -30380.32 -8239.58 ][-1519.73 0.00 8830.68 288.66 ][-1519.73 0.00 0.00 2157.22 ][3849.31 0.00 0.00 -4748.14 ][-3849.31 0.00 0.00 8399.39 ][1519.73 0.00 0.00 6479.52 ][221184.00 0.00 0.00 0.00 ][-245760.00 0.00 0.00 0.00 ][-147456.00 0.00 0.00 0.00 ][0.00 0.00 0.00 221184.00 ][0.00 0.00 0.00 -147456.00 ][0.00 0.00 0.00 -245760.00 ] +DEAL:: Quadrature point 1: [288.66 -8830.68 0.00 -1519.73 ][-8239.58 30380.32 0.00 3849.31 ][-11438.80 -56554.16 0.00 -3849.31 ][-17474.29 35004.51 0.00 1519.73 ][6479.52 0.00 0.00 1519.73 ][8399.39 0.00 0.00 -3849.31 ][-4748.14 0.00 0.00 3849.31 ][2157.22 0.00 0.00 -1519.73 ][1519.73 0.00 0.00 -2157.22 ][-3849.31 0.00 0.00 4748.14 ][3849.31 0.00 0.00 -8399.39 ][-1519.73 0.00 0.00 -6479.52 ][-1519.73 0.00 -35004.51 17474.29 ][3849.31 0.00 56554.16 11438.80 ][-3849.31 0.00 -30380.32 8239.58 ][1519.73 0.00 8830.68 -288.66 ][73728.00 0.00 0.00 0.00 ][-245760.00 0.00 0.00 0.00 ][147456.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24576.00 ][0.00 0.00 0.00 147456.00 ][0.00 0.00 0.00 -245760.00 ] diff --git a/tests/fe/bdm_14.cc b/tests/fe/bdm_14.cc new file mode 100644 index 0000000000..4a7ac87fb8 --- /dev/null +++ b/tests/fe/bdm_14.cc @@ -0,0 +1,107 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2003 - 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. +// +// --------------------------------------------------------------------- + + +// like rt_11, but use FESubfaceValues +// +// the test used to fail because of the issue with computing the +// normals using FEFaceValue, where FEFaceValue by accident uses the +// *face* mapping, not the *cell* mapping to compute the Piola +// transform (leading to a missing power of h in the determinant) + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define PRECISION 2 + + +std::ofstream logfile ("output"); + +template +void +test (const unsigned int degree) +{ + FE_BDM fe_rt(degree); + + deallog << "Degree=" << degree + << std::endl; + + for (double h=1; h>1./128; h/=2) + { + deallog << " h=" << h + << std::endl; + + Triangulation tr; + GridGenerator::hyper_cube(tr, 0., h); + + DoFHandler dof(tr); + dof.distribute_dofs(fe_rt); + + QTrapez quadrature; + + FESubfaceValues fe_values (fe_rt, quadrature, update_values); + fe_values.reinit (dof.begin_active(), 0, 0); + for (unsigned int q=0; q(i); + + return 0; +} + + + diff --git a/tests/fe/bdm_14.output b/tests/fe/bdm_14.output new file mode 100644 index 0000000000..3eb843be49 --- /dev/null +++ b/tests/fe/bdm_14.output @@ -0,0 +1,67 @@ + +DEAL::Degree=1 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [1.37 0 ][-0.37 0 ][0 0 ][0 0 ][0 1.37 ][0 -0.37 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0.50 0.22 ][0.50 -0.22 ][0 -0.22 ][0 0.22 ][0 0.68 ][0 -0.18 ][0 0.68 ][0 -0.18 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [2.73 0 ][-0.73 0 ][0 0 ][0 0 ][0 2.73 ][0 -0.73 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [1.00 0.43 ][1.00 -0.43 ][0 -0.43 ][0 0.43 ][0 1.37 ][0 -0.37 ][0 1.37 ][0 -0.37 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [5.46 0 ][-1.46 0 ][0 0 ][0 0 ][0 5.46 ][0 -1.46 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [2.00 0.87 ][2.00 -0.87 ][0 -0.87 ][0 0.87 ][0 2.73 ][0 -0.73 ][0 2.73 ][0 -0.73 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [10.93 0 ][-2.93 0 ][0 0 ][0 0 ][0 10.93 ][0 -2.93 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [4.00 1.73 ][4.00 -1.73 ][0 -1.73 ][0 1.73 ][0 5.46 ][0 -1.46 ][0 5.46 ][0 -1.46 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [21.86 0 ][-5.86 0 ][0 0 ][0 0 ][0 21.86 ][0 -5.86 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [8.00 3.46 ][8.00 -3.46 ][0 -3.46 ][0 3.46 ][0 10.93 ][0 -2.93 ][0 10.93 ][0 -2.93 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [43.71 0 ][-11.71 0 ][0 0 ][0 0 ][0 43.71 ][0 -11.71 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [16.00 6.93 ][16.00 -6.93 ][0 -6.93 ][0 6.93 ][0 21.86 ][0 -5.86 ][0 21.86 ][0 -5.86 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [87.43 0 ][-23.43 0 ][0 0 ][0 0 ][0 87.43 ][0 -23.43 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [32.00 13.86 ][32.00 -13.86 ][0 -13.86 ][0 13.86 ][0 43.71 ][0 -11.71 ][0 43.71 ][0 -11.71 ] +DEAL::Degree=2 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [1.48 0 ][-0.67 0 ][0.19 0 ][0 0 ][0 0 ][0 0 ][0 1.48 ][0 -0.67 ][0 0.19 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][1.00 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0.53 ][0 -0.67 ][0 -0.11 ][0 0.53 ][0 -0.67 ][0 -0.11 ][0 0 ][0 1.50 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [2.96 0 ][-1.33 0 ][0.38 0 ][0 0 ][0 0 ][0 0 ][0 2.96 ][0 -1.33 ][0 0.38 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][2.00 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.06 ][0 -1.33 ][0 -0.23 ][0 1.06 ][0 -1.33 ][0 -0.23 ][0 0 ][0 3.00 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [5.92 0 ][-2.67 0 ][0.75 0 ][0 0 ][0 0 ][0 0 ][0 5.92 ][0 -2.67 ][0 0.75 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][4.00 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 2.12 ][0 -2.67 ][0 -0.46 ][0 2.12 ][0 -2.67 ][0 -0.46 ][0 0 ][0 6.00 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [11.83 0 ][-5.33 0 ][1.50 0 ][0 0 ][0 0 ][0 0 ][0 11.83 ][0 -5.33 ][0 1.50 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][8.00 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 4.25 ][0 -5.33 ][0 -0.92 ][0 4.25 ][0 -5.33 ][0 -0.92 ][0 0 ][0 12.00 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [23.66 0 ][-10.67 0 ][3.01 0 ][0 0 ][0 0 ][0 0 ][0 23.66 ][0 -10.67 ][0 3.01 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][16.00 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 8.50 ][0 -10.67 ][0 -1.83 ][0 8.50 ][0 -10.67 ][0 -1.83 ][0 0 ][0 24.00 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [47.32 0 ][-21.33 0 ][6.01 0 ][0 0 ][0 0 ][0 0 ][0 47.32 ][0 -21.33 ][0 6.01 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][32.00 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 16.99 ][0 -21.33 ][0 -3.66 ][0 16.99 ][0 -21.33 ][0 -3.66 ][0 0 ][0 48.00 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [94.65 0 ][-42.67 0 ][12.02 0 ][0 0 ][0 0 ][0 0 ][0 94.65 ][0 -42.67 ][0 12.02 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [0 0 ][64.00 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 33.99 ][0 -42.67 ][0 -7.32 ][0 33.99 ][0 -42.67 ][0 -7.32 ][0 0 ][0 96.00 ] +DEAL::Degree=3 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [1.53 0 ][-0.81 0 ][0.40 0 ][-0.11 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.53 ][0 -0.81 ][0 0.40 ][0 -0.11 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-0.09 -0.02 ][0.59 0.06 ][0.59 -0.06 ][-0.09 0.02 ][0 0.02 ][0 -0.06 ][0 0.06 ][0 -0.02 ][0 0.30 ][0 -0.90 ][0 0.21 ][0 0.15 ][0 0.30 ][0 -0.90 ][0 0.21 ][0 0.15 ][0 0 ][0 0 ][0 0 ][0 6.00 ][0 -9.00 ][0 0 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [3.05 0 ][-1.63 0 ][0.80 0 ][-0.23 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 3.05 ][0 -1.63 ][0 0.80 ][0 -0.23 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-0.18 -0.05 ][1.18 0.12 ][1.18 -0.12 ][-0.18 0.05 ][0 0.05 ][0 -0.12 ][0 0.12 ][0 -0.05 ][0 0.59 ][0 -1.80 ][0 0.41 ][0 0.30 ][0 0.59 ][0 -1.80 ][0 0.41 ][0 0.30 ][0 0 ][0 0 ][0 0 ][0 12.00 ][0 -18.00 ][0 0 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [6.11 0 ][-3.25 0 ][1.60 0 ][-0.46 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 6.11 ][0 -3.25 ][0 1.60 ][0 -0.46 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-0.37 -0.09 ][2.37 0.23 ][2.37 -0.23 ][-0.37 0.09 ][0 0.09 ][0 -0.23 ][0 0.23 ][0 -0.09 ][0 1.18 ][0 -3.60 ][0 0.82 ][0 0.60 ][0 1.18 ][0 -3.60 ][0 0.82 ][0 0.60 ][0 0 ][0 0 ][0 0 ][0 24.00 ][0 -36.00 ][0 0 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [12.21 0 ][-6.51 0 ][3.21 0 ][-0.91 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 12.21 ][0 -6.51 ][0 3.21 ][0 -0.91 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-0.74 -0.19 ][4.74 0.47 ][4.74 -0.47 ][-0.74 0.19 ][0 0.19 ][0 -0.47 ][0 0.47 ][0 -0.19 ][0 2.37 ][0 -7.21 ][0 1.64 ][0 1.20 ][0 2.37 ][0 -7.21 ][0 1.64 ][0 1.20 ][0 0 ][0 0 ][0 0 ][0 48.00 ][0 -72.00 ][0 0 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [24.43 0 ][-13.02 0 ][6.41 0 ][-1.82 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 24.43 ][0 -13.02 ][0 6.41 ][0 -1.82 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-1.48 -0.37 ][9.48 0.94 ][9.48 -0.94 ][-1.48 0.37 ][0 0.37 ][0 -0.94 ][0 0.94 ][0 -0.37 ][0 4.74 ][0 -14.41 ][0 3.28 ][0 2.39 ][0 4.74 ][0 -14.41 ][0 3.28 ][0 2.39 ][0 0 ][0 0 ][0 0 ][0 96.00 ][0 -144.00 ][0 0 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [48.86 0 ][-26.04 0 ][12.82 0 ][-3.65 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 48.86 ][0 -26.04 ][0 12.82 ][0 -3.65 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-2.95 -0.74 ][18.95 1.88 ][18.95 -1.88 ][-2.95 0.74 ][0 0.74 ][0 -1.88 ][0 1.88 ][0 -0.74 ][0 9.47 ][0 -28.83 ][0 6.57 ][0 4.79 ][0 9.47 ][0 -28.83 ][0 6.57 ][0 4.79 ][0 0 ][0 0 ][0 0 ][0 192.00 ][0 -288.00 ][0 0 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [97.71 0 ][-52.07 0 ][25.65 0 ][-7.29 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 97.71 ][0 -52.07 ][0 25.65 ][0 -7.29 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ] +DEAL:: Quadrature point 1: [-5.91 -1.48 ][37.91 3.76 ][37.91 -3.76 ][-5.91 1.48 ][0 1.48 ][0 -3.76 ][0 3.76 ][0 -1.48 ][0 18.94 ][0 -57.65 ][0 13.14 ][0 9.57 ][0 18.94 ][0 -57.65 ][0 13.14 ][0 9.57 ][0 0 ][0 0 ][0 0 ][0 384.00 ][0 -576.00 ][0 0 ] diff --git a/tests/fe/bdm_15.cc b/tests/fe/bdm_15.cc new file mode 100644 index 0000000000..1ccb4888b7 --- /dev/null +++ b/tests/fe/bdm_15.cc @@ -0,0 +1,107 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2003 - 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. +// +// --------------------------------------------------------------------- + + +// Like rt_13, but use FESubfaceValues +// +// the test used to fail because of the issue with computing the +// normals using FEFaceValue, where FEFaceValue by accident uses the +// *face* mapping, not the *cell* mapping to compute the Piola +// transform (leading to a missing power of h in the determinant) + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define PRECISION 2 + + +std::ofstream logfile ("output"); + +template +void +test (const unsigned int degree) +{ + FE_BDM fe_rt(degree); + + deallog << "Degree=" << degree + << std::endl; + + for (double h=1; h>1./128; h/=2) + { + deallog << " h=" << h + << std::endl; + + Triangulation tr; + GridGenerator::hyper_cube(tr, 0., h); + + DoFHandler dof(tr); + dof.distribute_dofs(fe_rt); + + QTrapez quadrature; + + FESubfaceValues fe_values (fe_rt, quadrature, update_gradients); + fe_values.reinit (dof.begin_active(), 0, 0); + for (unsigned int q=0; q(i); + + return 0; +} + + + diff --git a/tests/fe/bdm_15.output b/tests/fe/bdm_15.output new file mode 100644 index 0000000000..70789282a9 --- /dev/null +++ b/tests/fe/bdm_15.output @@ -0,0 +1,67 @@ + +DEAL::Degree=1 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [-1.37 -1.73 0.00 0.87 ][0.37 1.73 0.00 -0.87 ][1.37 0.00 0.00 -0.87 ][-0.37 0.00 0.00 0.87 ][0.87 0.00 -1.73 -1.37 ][-0.87 0.00 1.73 0.37 ][-0.87 0.00 0.00 1.37 ][0.87 0.00 0.00 -0.37 ] +DEAL:: Quadrature point 1: [-0.50 -1.73 0.00 0.00 ][-0.50 1.73 0.00 0.00 ][0.50 0.00 0.00 0.00 ][0.50 0.00 0.00 0.00 ][0.87 0.00 -0.87 -1.37 ][-0.87 0.00 0.87 0.37 ][-0.87 0.00 -0.87 1.37 ][0.87 0.00 0.87 -0.37 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [-5.46 -6.93 0.00 3.46 ][1.46 6.93 0.00 -3.46 ][5.46 0.00 0.00 -3.46 ][-1.46 0.00 0.00 3.46 ][3.46 0.00 -6.93 -5.46 ][-3.46 0.00 6.93 1.46 ][-3.46 0.00 0.00 5.46 ][3.46 0.00 0.00 -1.46 ] +DEAL:: Quadrature point 1: [-2.00 -6.93 0.00 0.00 ][-2.00 6.93 0.00 0.00 ][2.00 0.00 0.00 0.00 ][2.00 0.00 0.00 0.00 ][3.46 0.00 -3.46 -5.46 ][-3.46 0.00 3.46 1.46 ][-3.46 0.00 -3.46 5.46 ][3.46 0.00 3.46 -1.46 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [-21.86 -27.71 0.00 13.86 ][5.86 27.71 0.00 -13.86 ][21.86 0.00 0.00 -13.86 ][-5.86 0.00 0.00 13.86 ][13.86 0.00 -27.71 -21.86 ][-13.86 0.00 27.71 5.86 ][-13.86 0.00 0.00 21.86 ][13.86 0.00 0.00 -5.86 ] +DEAL:: Quadrature point 1: [-8.00 -27.71 0.00 0.00 ][-8.00 27.71 0.00 0.00 ][8.00 0.00 0.00 0.00 ][8.00 0.00 0.00 0.00 ][13.86 0.00 -13.86 -21.86 ][-13.86 0.00 13.86 5.86 ][-13.86 0.00 -13.86 21.86 ][13.86 0.00 13.86 -5.86 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [-87.43 -110.85 0.00 55.43 ][23.43 110.85 0.00 -55.43 ][87.43 0.00 0.00 -55.43 ][-23.43 0.00 0.00 55.43 ][55.43 0.00 -110.85 -87.43 ][-55.43 0.00 110.85 23.43 ][-55.43 0.00 0.00 87.43 ][55.43 0.00 0.00 -23.43 ] +DEAL:: Quadrature point 1: [-32.00 -110.85 0.00 0.00 ][-32.00 110.85 0.00 0.00 ][32.00 0.00 0.00 0.00 ][32.00 0.00 0.00 0.00 ][55.43 0.00 -55.43 -87.43 ][-55.43 0.00 55.43 23.43 ][-55.43 0.00 -55.43 87.43 ][55.43 0.00 55.43 -23.43 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [-349.70 -443.41 0.00 221.70 ][93.70 443.41 0.00 -221.70 ][349.70 0.00 0.00 -221.70 ][-93.70 0.00 0.00 221.70 ][221.70 0.00 -443.41 -349.70 ][-221.70 0.00 443.41 93.70 ][-221.70 0.00 0.00 349.70 ][221.70 0.00 0.00 -93.70 ] +DEAL:: Quadrature point 1: [-128.00 -443.41 0.00 0.00 ][-128.00 443.41 0.00 0.00 ][128.00 0.00 0.00 0.00 ][128.00 0.00 0.00 0.00 ][221.70 0.00 -221.70 -349.70 ][-221.70 0.00 221.70 93.70 ][-221.70 0.00 -221.70 349.70 ][221.70 0.00 221.70 -93.70 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [-1398.81 -1773.62 0.00 886.81 ][374.81 1773.62 0.00 -886.81 ][1398.81 0.00 0.00 -886.81 ][-374.81 0.00 0.00 886.81 ][886.81 0.00 -1773.62 -1398.81 ][-886.81 0.00 1773.62 374.81 ][-886.81 0.00 0.00 1398.81 ][886.81 0.00 0.00 -374.81 ] +DEAL:: Quadrature point 1: [-512.00 -1773.62 0.00 0.00 ][-512.00 1773.62 0.00 0.00 ][512.00 0.00 0.00 0.00 ][512.00 0.00 0.00 0.00 ][886.81 0.00 -886.81 -1398.81 ][-886.81 0.00 886.81 374.81 ][-886.81 0.00 -886.81 1398.81 ][886.81 0.00 886.81 -374.81 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [-5595.24 -7094.48 0.00 3547.24 ][1499.24 7094.48 0.00 -3547.24 ][5595.24 0.00 0.00 -3547.24 ][-1499.24 0.00 0.00 3547.24 ][3547.24 0.00 -7094.48 -5595.24 ][-3547.24 0.00 7094.48 1499.24 ][-3547.24 0.00 0.00 5595.24 ][3547.24 0.00 0.00 -1499.24 ] +DEAL:: Quadrature point 1: [-2048.00 -7094.48 0.00 0.00 ][-2048.00 7094.48 0.00 0.00 ][2048.00 0.00 0.00 0.00 ][2048.00 0.00 0.00 0.00 ][3547.24 0.00 -3547.24 -5595.24 ][-3547.24 0.00 3547.24 1499.24 ][-3547.24 0.00 -3547.24 5595.24 ][3547.24 0.00 3547.24 -1499.24 ] +DEAL::Degree=2 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [-2.31 -4.62 0.00 0.56 ][-0.67 6.67 0.00 -1.11 ][-1.02 -2.04 0.00 0.56 ][0.65 0.00 0.00 -0.56 ][-2.00 0.00 0.00 1.11 ][-0.65 0.00 0.00 -0.56 ][0.56 0.00 -4.62 -2.31 ][-1.11 0.00 6.67 -0.67 ][0.56 0.00 -2.04 -1.02 ][-0.56 0.00 0.00 0.65 ][1.11 0.00 0.00 -2.00 ][-0.56 0.00 0.00 -0.65 ][6.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6.00 ] +DEAL:: Quadrature point 1: [-0.83 -1.29 0.00 -0.28 ][-2.33 0.00 0.00 0.56 ][-0.83 1.29 0.00 -0.28 ][-0.83 0.00 0.00 0.28 ][-0.33 0.00 0.00 -0.56 ][-0.83 0.00 0.00 0.28 ][0.56 0.00 -2.31 -1.48 ][-1.11 0.00 3.33 0.67 ][0.56 0.00 -1.02 -0.19 ][-0.56 0.00 -2.31 1.48 ][1.11 0.00 3.33 -0.67 ][-0.56 0.00 -1.02 0.19 ][6.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [-9.25 -18.50 0.00 2.22 ][-2.67 26.67 0.00 -4.44 ][-4.08 -8.17 0.00 2.22 ][2.58 0.00 0.00 -2.22 ][-8.00 0.00 0.00 4.44 ][-2.58 0.00 0.00 -2.22 ][2.22 0.00 -18.50 -9.25 ][-4.44 0.00 26.67 -2.67 ][2.22 0.00 -8.17 -4.08 ][-2.22 0.00 0.00 2.58 ][4.44 0.00 0.00 -8.00 ][-2.22 0.00 0.00 -2.58 ][24.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24.00 ] +DEAL:: Quadrature point 1: [-3.33 -5.16 0.00 -1.11 ][-9.33 0.00 0.00 2.22 ][-3.33 5.16 0.00 -1.11 ][-3.33 0.00 0.00 1.11 ][-1.33 0.00 0.00 -2.22 ][-3.33 0.00 0.00 1.11 ][2.22 0.00 -9.25 -5.92 ][-4.44 0.00 13.33 2.67 ][2.22 0.00 -4.08 -0.75 ][-2.22 0.00 -9.25 5.92 ][4.44 0.00 13.33 -2.67 ][-2.22 0.00 -4.08 0.75 ][24.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [-36.99 -73.99 0.00 8.89 ][-10.67 106.67 0.00 -17.78 ][-16.34 -32.68 0.00 8.89 ][10.33 0.00 0.00 -8.89 ][-32.00 0.00 0.00 17.78 ][-10.33 0.00 0.00 -8.89 ][8.89 0.00 -73.99 -36.99 ][-17.78 0.00 106.67 -10.67 ][8.89 0.00 -32.68 -16.34 ][-8.89 0.00 0.00 10.33 ][17.78 0.00 0.00 -32.00 ][-8.89 0.00 0.00 -10.33 ][96.00 0.00 0.00 0.00 ][0.00 0.00 0.00 96.00 ] +DEAL:: Quadrature point 1: [-13.33 -20.66 0.00 -4.44 ][-37.33 0.00 0.00 8.89 ][-13.33 20.66 0.00 -4.44 ][-13.33 0.00 0.00 4.44 ][-5.33 0.00 0.00 -8.89 ][-13.33 0.00 0.00 4.44 ][8.89 0.00 -36.99 -23.66 ][-17.78 0.00 53.33 10.67 ][8.89 0.00 -16.34 -3.01 ][-8.89 0.00 -36.99 23.66 ][17.78 0.00 53.33 -10.67 ][-8.89 0.00 -16.34 3.01 ][96.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [-147.98 -295.96 0.00 35.56 ][-42.67 426.67 0.00 -71.11 ][-65.35 -130.71 0.00 35.56 ][41.31 0.00 0.00 -35.56 ][-128.00 0.00 0.00 71.11 ][-41.31 0.00 0.00 -35.56 ][35.56 0.00 -295.96 -147.98 ][-71.11 0.00 426.67 -42.67 ][35.56 0.00 -130.71 -65.35 ][-35.56 0.00 0.00 41.31 ][71.11 0.00 0.00 -128.00 ][-35.56 0.00 0.00 -41.31 ][384.00 0.00 0.00 0.00 ][0.00 0.00 0.00 384.00 ] +DEAL:: Quadrature point 1: [-53.33 -82.62 0.00 -17.78 ][-149.33 0.00 0.00 35.56 ][-53.33 82.62 0.00 -17.78 ][-53.33 0.00 0.00 17.78 ][-21.33 0.00 0.00 -35.56 ][-53.33 0.00 0.00 17.78 ][35.56 0.00 -147.98 -94.65 ][-71.11 0.00 213.33 42.67 ][35.56 0.00 -65.35 -12.02 ][-35.56 0.00 -147.98 94.65 ][71.11 0.00 213.33 -42.67 ][-35.56 0.00 -65.35 12.02 ][384.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [-591.91 -1183.83 0.00 142.22 ][-170.67 1706.67 0.00 -284.44 ][-261.42 -522.84 0.00 142.22 ][165.25 0.00 0.00 -142.22 ][-512.00 0.00 0.00 284.44 ][-165.25 0.00 0.00 -142.22 ][142.22 0.00 -1183.83 -591.91 ][-284.44 0.00 1706.67 -170.67 ][142.22 0.00 -522.84 -261.42 ][-142.22 0.00 0.00 165.25 ][284.44 0.00 0.00 -512.00 ][-142.22 0.00 0.00 -165.25 ][1536.00 0.00 0.00 0.00 ][0.00 0.00 0.00 1536.00 ] +DEAL:: Quadrature point 1: [-213.33 -330.49 0.00 -71.11 ][-597.33 0.00 0.00 142.22 ][-213.33 330.49 0.00 -71.11 ][-213.33 0.00 0.00 71.11 ][-85.33 0.00 0.00 -142.22 ][-213.33 0.00 0.00 71.11 ][142.22 0.00 -591.91 -378.58 ][-284.44 0.00 853.33 170.67 ][142.22 0.00 -261.42 -48.09 ][-142.22 0.00 -591.91 378.58 ][284.44 0.00 853.33 -170.67 ][-142.22 0.00 -261.42 48.09 ][1536.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [-2367.66 -4735.31 0.00 568.89 ][-682.67 6826.67 0.00 -1137.78 ][-1045.68 -2091.36 0.00 568.89 ][660.99 0.00 0.00 -568.89 ][-2048.00 0.00 0.00 1137.78 ][-660.99 0.00 0.00 -568.89 ][568.89 0.00 -4735.31 -2367.66 ][-1137.78 0.00 6826.67 -682.67 ][568.89 0.00 -2091.36 -1045.68 ][-568.89 0.00 0.00 660.99 ][1137.78 0.00 0.00 -2048.00 ][-568.89 0.00 0.00 -660.99 ][6144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6144.00 ] +DEAL:: Quadrature point 1: [-853.33 -1321.98 0.00 -284.44 ][-2389.33 0.00 0.00 568.89 ][-853.33 1321.98 0.00 -284.44 ][-853.33 0.00 0.00 284.44 ][-341.33 0.00 0.00 -568.89 ][-853.33 0.00 0.00 284.44 ][568.89 0.00 -2367.66 -1514.32 ][-1137.78 0.00 3413.33 682.67 ][568.89 0.00 -1045.68 -192.34 ][-568.89 0.00 -2367.66 1514.32 ][1137.78 0.00 3413.33 -682.67 ][-568.89 0.00 -1045.68 192.34 ][6144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [-9470.62 -18941.25 0.00 2275.56 ][-2730.67 27306.67 0.00 -4551.11 ][-4182.71 -8365.42 0.00 2275.56 ][2643.96 0.00 0.00 -2275.56 ][-8192.00 0.00 0.00 4551.11 ][-2643.96 0.00 0.00 -2275.56 ][2275.56 0.00 -18941.25 -9470.62 ][-4551.11 0.00 27306.67 -2730.67 ][2275.56 0.00 -8365.42 -4182.71 ][-2275.56 0.00 0.00 2643.96 ][4551.11 0.00 0.00 -8192.00 ][-2275.56 0.00 0.00 -2643.96 ][24576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24576.00 ] +DEAL:: Quadrature point 1: [-3413.33 -5287.91 0.00 -1137.78 ][-9557.33 0.00 0.00 2275.56 ][-3413.33 5287.91 0.00 -1137.78 ][-3413.33 0.00 0.00 1137.78 ][-1365.33 0.00 0.00 -2275.56 ][-3413.33 0.00 0.00 1137.78 ][2275.56 0.00 -9470.62 -6057.29 ][-4551.11 0.00 13653.33 2730.67 ][2275.56 0.00 -4182.71 -769.38 ][-2275.56 0.00 -9470.62 6057.29 ][4551.11 0.00 13653.33 -2730.67 ][-2275.56 0.00 -4182.71 769.38 ][24576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ] +DEAL::Degree=3 +DEAL:: h=1.00 +DEAL:: Quadrature point 0: [-4.27 -8.55 0.00 0.37 ][-2.79 13.81 0.00 -0.94 ][-2.01 -7.42 0.00 0.94 ][0.07 2.16 0.00 -0.37 ][0.53 0.00 0.00 -0.37 ][-1.16 0.00 0.00 0.94 ][2.05 0.00 0.00 -0.94 ][1.58 0.00 0.00 0.37 ][0.37 0.00 -8.55 -4.27 ][-0.94 0.00 13.81 -2.79 ][0.94 0.00 -7.42 -2.01 ][-0.37 0.00 2.16 0.07 ][-0.37 0.00 0.00 0.53 ][0.94 0.00 0.00 -1.16 ][-0.94 0.00 0.00 2.05 ][0.37 0.00 0.00 1.58 ][54.00 0.00 0.00 0.00 ][-60.00 0.00 0.00 0.00 ][-36.00 0.00 0.00 0.00 ][0.00 0.00 0.00 54.00 ][0.00 0.00 0.00 -36.00 ][0.00 0.00 0.00 -60.00 ] +DEAL:: Quadrature point 1: [-1.30 0.21 0.00 0.00 ][-3.20 -3.48 0.00 0.00 ][-3.20 3.48 0.00 0.00 ][-1.30 -0.21 0.00 0.00 ][0.26 0.00 0.00 0.00 ][1.24 0.00 0.00 0.00 ][1.24 0.00 0.00 0.00 ][0.26 0.00 0.00 0.00 ][0.37 0.00 -3.60 -1.09 ][-0.94 0.00 7.40 1.63 ][0.94 0.00 -4.21 0.41 ][-0.37 0.00 0.40 0.55 ][-0.37 0.00 -3.60 1.09 ][0.94 0.00 7.40 -1.63 ][-0.94 0.00 -4.21 -0.41 ][0.37 0.00 0.40 -0.55 ][36.00 0.00 0.00 0.00 ][-60.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ][0.00 0.00 -9.00 -15.00 ][0.00 0.00 18.00 0.00 ][0.00 0.00 0.00 30.00 ] +DEAL:: h=0.50 +DEAL:: Quadrature point 0: [-17.06 -34.18 0.00 1.48 ][-11.17 55.23 0.00 -3.76 ][-8.05 -29.67 0.00 3.76 ][0.28 8.62 0.00 -1.48 ][2.11 0.00 0.00 -1.48 ][-4.64 0.00 0.00 3.76 ][8.20 0.00 0.00 -3.76 ][6.33 0.00 0.00 1.48 ][1.48 0.00 -34.18 -17.06 ][-3.76 0.00 55.23 -11.17 ][3.76 0.00 -29.67 -8.05 ][-1.48 0.00 8.62 0.28 ][-1.48 0.00 0.00 2.11 ][3.76 0.00 0.00 -4.64 ][-3.76 0.00 0.00 8.20 ][1.48 0.00 0.00 6.33 ][216.00 0.00 0.00 0.00 ][-240.00 0.00 0.00 0.00 ][-144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 216.00 ][0.00 0.00 0.00 -144.00 ][0.00 0.00 0.00 -240.00 ] +DEAL:: Quadrature point 1: [-5.20 0.86 0.00 0.00 ][-12.80 -13.94 0.00 0.00 ][-12.80 13.94 0.00 0.00 ][-5.20 -0.86 0.00 0.00 ][1.02 0.00 0.00 0.00 ][4.98 0.00 0.00 0.00 ][4.98 0.00 0.00 0.00 ][1.02 0.00 0.00 0.00 ][1.48 0.00 -14.40 -4.37 ][-3.76 0.00 29.61 6.52 ][3.76 0.00 -16.83 1.66 ][-1.48 0.00 1.62 2.19 ][-1.48 0.00 -14.40 4.37 ][3.76 0.00 29.61 -6.52 ][-3.76 0.00 -16.83 -1.66 ][1.48 0.00 1.62 -2.19 ][144.00 0.00 0.00 0.00 ][-240.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ][0.00 0.00 -36.00 -60.00 ][0.00 0.00 72.00 0.00 ][0.00 0.00 0.00 120.00 ] +DEAL:: h=0.25 +DEAL:: Quadrature point 0: [-68.26 -136.74 0.00 5.94 ][-44.68 220.91 0.00 -15.04 ][-32.19 -118.67 0.00 15.04 ][1.13 34.49 0.00 -5.94 ][8.43 0.00 0.00 -5.94 ][-18.55 0.00 0.00 15.04 ][32.81 0.00 0.00 -15.04 ][25.31 0.00 0.00 5.94 ][5.94 0.00 -136.74 -68.26 ][-15.04 0.00 220.91 -44.68 ][15.04 0.00 -118.67 -32.19 ][-5.94 0.00 34.49 1.13 ][-5.94 0.00 0.00 8.43 ][15.04 0.00 0.00 -18.55 ][-15.04 0.00 0.00 32.81 ][5.94 0.00 0.00 25.31 ][864.00 0.00 0.00 0.00 ][-960.00 0.00 0.00 0.00 ][-576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 864.00 ][0.00 0.00 0.00 -576.00 ][0.00 0.00 0.00 -960.00 ] +DEAL:: Quadrature point 1: [-20.79 3.43 0.00 0.00 ][-51.21 -55.75 0.00 0.00 ][-51.21 55.75 0.00 0.00 ][-20.79 -3.43 0.00 0.00 ][4.09 0.00 0.00 0.00 ][19.91 0.00 0.00 0.00 ][19.91 0.00 0.00 0.00 ][4.09 0.00 0.00 0.00 ][5.94 0.00 -57.58 -17.47 ][-15.04 0.00 118.44 26.06 ][15.04 0.00 -67.32 6.63 ][-5.94 0.00 6.46 8.78 ][-5.94 0.00 -57.58 17.47 ][15.04 0.00 118.44 -26.06 ][-15.04 0.00 -67.32 -6.63 ][5.94 0.00 6.46 -8.78 ][576.00 0.00 0.00 0.00 ][-960.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ][0.00 0.00 -144.00 -240.00 ][0.00 0.00 288.00 0.00 ][0.00 0.00 0.00 480.00 ] +DEAL:: h=0.12 +DEAL:: Quadrature point 0: [-273.04 -546.95 0.00 23.75 ][-178.73 883.66 0.00 -60.15 ][-128.74 -474.69 0.00 60.15 ][4.51 137.98 0.00 -23.75 ][33.71 0.00 0.00 -23.75 ][-74.19 0.00 0.00 60.15 ][131.24 0.00 0.00 -60.15 ][101.24 0.00 0.00 23.75 ][23.75 0.00 -546.95 -273.04 ][-60.15 0.00 883.66 -178.73 ][60.15 0.00 -474.69 -128.74 ][-23.75 0.00 137.98 4.51 ][-23.75 0.00 0.00 33.71 ][60.15 0.00 0.00 -74.19 ][-60.15 0.00 0.00 131.24 ][23.75 0.00 0.00 101.24 ][3456.00 0.00 0.00 0.00 ][-3840.00 0.00 0.00 0.00 ][-2304.00 0.00 0.00 0.00 ][0.00 0.00 0.00 3456.00 ][0.00 0.00 0.00 -2304.00 ][0.00 0.00 0.00 -3840.00 ] +DEAL:: Quadrature point 1: [-83.14 13.72 0.00 0.00 ][-204.86 -223.01 0.00 0.00 ][-204.86 223.01 0.00 0.00 ][-83.14 -13.72 0.00 0.00 ][16.35 0.00 0.00 0.00 ][79.65 0.00 0.00 0.00 ][79.65 0.00 0.00 0.00 ][16.35 0.00 0.00 0.00 ][23.75 0.00 -230.34 -69.89 ][-60.15 0.00 473.76 104.24 ][60.15 0.00 -269.27 26.52 ][-23.75 0.00 25.85 35.12 ][-23.75 0.00 -230.34 69.89 ][60.15 0.00 473.76 -104.24 ][-60.15 0.00 -269.27 -26.52 ][23.75 0.00 25.85 -35.12 ][2304.00 0.00 0.00 0.00 ][-3840.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ][0.00 0.00 -576.00 -960.00 ][0.00 0.00 1152.00 0.00 ][0.00 0.00 0.00 1920.00 ] +DEAL:: h=0.06 +DEAL:: Quadrature point 0: [-1092.14 -2187.78 0.00 94.98 ][-714.92 3534.63 0.00 -240.58 ][-514.97 -1898.77 0.00 240.58 ][18.04 551.92 0.00 -94.98 ][134.83 0.00 0.00 -94.98 ][-296.76 0.00 0.00 240.58 ][524.96 0.00 0.00 -240.58 ][404.97 0.00 0.00 94.98 ][94.98 0.00 -2187.78 -1092.14 ][-240.58 0.00 3534.63 -714.92 ][240.58 0.00 -1898.77 -514.97 ][-94.98 0.00 551.92 18.04 ][-94.98 0.00 0.00 134.83 ][240.58 0.00 0.00 -296.76 ][-240.58 0.00 0.00 524.96 ][94.98 0.00 0.00 404.97 ][13824.00 0.00 0.00 0.00 ][-15360.00 0.00 0.00 0.00 ][-9216.00 0.00 0.00 0.00 ][0.00 0.00 0.00 13824.00 ][0.00 0.00 0.00 -9216.00 ][0.00 0.00 0.00 -15360.00 ] +DEAL:: Quadrature point 1: [-332.57 54.89 0.00 0.00 ][-819.43 -892.02 0.00 0.00 ][-819.43 892.02 0.00 0.00 ][-332.57 -54.89 0.00 0.00 ][65.42 0.00 0.00 0.00 ][318.58 0.00 0.00 0.00 ][318.58 0.00 0.00 0.00 ][65.42 0.00 0.00 0.00 ][94.98 0.00 -921.35 -279.54 ][-240.58 0.00 1895.03 416.98 ][240.58 0.00 -1077.09 106.09 ][-94.98 0.00 103.42 140.48 ][-94.98 0.00 -921.35 279.54 ][240.58 0.00 1895.03 -416.98 ][-240.58 0.00 -1077.09 -106.09 ][94.98 0.00 103.42 -140.48 ][9216.00 0.00 0.00 0.00 ][-15360.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ][0.00 0.00 -2304.00 -3840.00 ][0.00 0.00 4608.00 0.00 ][0.00 0.00 0.00 7680.00 ] +DEAL:: h=0.03 +DEAL:: Quadrature point 0: [-4368.57 -8751.13 0.00 379.93 ][-2859.70 14138.54 0.00 -962.33 ][-2059.89 -7595.08 0.00 962.33 ][72.17 2207.67 0.00 -379.93 ][539.31 0.00 0.00 -379.93 ][-1187.03 0.00 0.00 962.33 ][2099.85 0.00 0.00 -962.33 ][1619.88 0.00 0.00 379.93 ][379.93 0.00 -8751.13 -4368.57 ][-962.33 0.00 14138.54 -2859.70 ][962.33 0.00 -7595.08 -2059.89 ][-379.93 0.00 2207.67 72.17 ][-379.93 0.00 0.00 539.31 ][962.33 0.00 0.00 -1187.03 ][-962.33 0.00 0.00 2099.85 ][379.93 0.00 0.00 1619.88 ][55296.00 0.00 0.00 0.00 ][-61440.00 0.00 0.00 0.00 ][-36864.00 0.00 0.00 0.00 ][0.00 0.00 0.00 55296.00 ][0.00 0.00 0.00 -36864.00 ][0.00 0.00 0.00 -61440.00 ] +DEAL:: Quadrature point 1: [-1330.27 219.58 0.00 0.00 ][-3277.73 -3568.10 0.00 0.00 ][-3277.73 3568.10 0.00 0.00 ][-1330.27 -219.58 0.00 0.00 ][261.66 0.00 0.00 0.00 ][1274.34 0.00 0.00 0.00 ][1274.34 0.00 0.00 0.00 ][261.66 0.00 0.00 0.00 ][379.93 0.00 -3685.40 -1118.18 ][-962.33 0.00 7580.11 1667.91 ][962.33 0.00 -4308.38 424.37 ][-379.93 0.00 413.67 561.91 ][-379.93 0.00 -3685.40 1118.18 ][962.33 0.00 7580.11 -1667.91 ][-962.33 0.00 -4308.38 -424.37 ][379.93 0.00 413.67 -561.91 ][36864.00 0.00 0.00 0.00 ][-61440.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ][0.00 0.00 -9216.00 -15360.00 ][0.00 0.00 18432.00 0.00 ][0.00 0.00 0.00 30720.00 ] +DEAL:: h=0.02 +DEAL:: Quadrature point 0: [-17474.29 -35004.51 0.00 1519.73 ][-11438.80 56554.16 0.00 -3849.31 ][-8239.58 -30380.32 0.00 3849.31 ][288.66 8830.68 0.00 -1519.73 ][2157.22 0.00 0.00 -1519.73 ][-4748.14 0.00 0.00 3849.31 ][8399.39 0.00 0.00 -3849.31 ][6479.52 0.00 0.00 1519.73 ][1519.73 0.00 -35004.51 -17474.29 ][-3849.31 0.00 56554.16 -11438.80 ][3849.31 0.00 -30380.32 -8239.58 ][-1519.73 0.00 8830.68 288.66 ][-1519.73 0.00 0.00 2157.22 ][3849.31 0.00 0.00 -4748.14 ][-3849.31 0.00 0.00 8399.39 ][1519.73 0.00 0.00 6479.52 ][221184.00 0.00 0.00 0.00 ][-245760.00 0.00 0.00 0.00 ][-147456.00 0.00 0.00 0.00 ][0.00 0.00 0.00 221184.00 ][0.00 0.00 0.00 -147456.00 ][0.00 0.00 0.00 -245760.00 ] +DEAL:: Quadrature point 1: [-5321.08 878.30 0.00 0.00 ][-13110.92 -14272.38 0.00 0.00 ][-13110.92 14272.38 0.00 0.00 ][-5321.08 -878.30 0.00 0.00 ][1046.64 0.00 0.00 0.00 ][5097.36 0.00 0.00 0.00 ][5097.36 0.00 0.00 0.00 ][1046.64 0.00 0.00 0.00 ][1519.73 0.00 -14741.60 -4472.71 ][-3849.31 0.00 30320.42 6671.62 ][3849.31 0.00 -17233.50 1697.46 ][-1519.73 0.00 1654.68 2247.62 ][-1519.73 0.00 -14741.60 4472.71 ][3849.31 0.00 30320.42 -6671.62 ][-3849.31 0.00 -17233.50 -1697.46 ][1519.73 0.00 1654.68 -2247.62 ][147456.00 0.00 0.00 0.00 ][-245760.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ][0.00 0.00 -36864.00 -61440.00 ][0.00 0.00 73728.00 0.00 ][0.00 0.00 0.00 122880.00 ] diff --git a/tests/fe/bdm_2.cc b/tests/fe/bdm_2.cc new file mode 100644 index 0000000000..d505646947 --- /dev/null +++ b/tests/fe/bdm_2.cc @@ -0,0 +1,179 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2003 - 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. +// +// --------------------------------------------------------------------- + + +// Show the shape functions of the Raviart-Thomas element on a grid +// with only one cell. This cell is rotated, stretched, scaled, etc, +// and on each of these cells each time we evaluate the shape +// functions. + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define PRECISION 3 + + +Point<2> stretch_coordinates (const Point<2> p) +{ + return Point<2>(2*p(0), p(1)); +} + + + +Point<2> tilt_coordinates (const Point<2> p) +{ + return Point<2>(p(0)+p(1), p(1)); +} + + +void +transform_grid (Triangulation<2> &tria, + const unsigned int transform) +{ + switch (transform) + { + // first round: take + // original grid + case 0: + break; + + // second round: rotate + // triangulation + case 1: + GridTools::rotate (3.14159265358/2, tria); + break; + + // third round: inflate + // by a factor of 2 + case 2: + GridTools::scale (2, tria); + break; + + // third round: scale + // back, rotate back, + // stretch + case 3: + GridTools::scale (.5, tria); + GridTools::rotate (-3.14159265358/2, tria); + GridTools::transform (&stretch_coordinates, tria); + + break; + + default: + Assert (false, ExcNotImplemented()); + }; +} + + + + +template +void +plot_shape_functions(const unsigned int degree) +{ + FE_BDM element(degree); + Triangulation tr; + GridGenerator::hyper_cube(tr, 0., 1.); + + // check the following with a + // number of transformed + // triangulations + for (unsigned int transform=0; transform<4; ++transform) + { + std::ostringstream ost; + ost << "BDM" << degree << "-Transform" << transform; + deallog.push(ost.str()); + + transform_grid (tr, transform); + + DoFHandler dof(tr); + typename DoFHandler::cell_iterator c = dof.begin(); + dof.distribute_dofs(element); + + QTrapez<1> q_trapez; + const unsigned int div=2; + QIterated q(q_trapez, div); + FEValues fe(element, q, update_values|update_gradients|update_q_points); + fe.reinit(c); + + for (unsigned int q_point=0; q_point< q.size(); ++q_point) + { + // Output function in + // gnuplot readable format, + // namely x y z u0x u0y u0z u1x... + deallog << "value " << q_point << '\t' << fe.quadrature_point(q_point); + + for (unsigned int i=0; i(degree); + + return 0; +} diff --git a/tests/fe/bdm_2.output b/tests/fe/bdm_2.output new file mode 100644 index 0000000000..6dce4786e2 --- /dev/null +++ b/tests/fe/bdm_2.output @@ -0,0 +1,301 @@ + +DEAL:BDM1-Transform0::value 0 0.000 0.000 1.366 0 -0.366 0 0 0 0 0 0 1.366 0 -0.366 0 0 0 0 +DEAL:BDM1-Transform0::gradient 0 0.000 0.000 -1.366 -1.732 0 0.866 0.366 1.732 0 -0.866 1.366 0 0 -0.866 -0.366 0 0 0.866 0.866 0 -1.732 -1.366 -0.866 0 1.732 0.366 -0.866 0 0 1.366 0.866 0 0 -0.366 +DEAL:BDM1-Transform0::value 1 0.500 0.000 0.683 0 -0.183 0 0.683 0 -0.183 0 0.217 0.500 -0.217 0.500 -0.217 0 0.217 0 +DEAL:BDM1-Transform0::gradient 1 0.500 0.000 -1.366 -0.866 0 0.866 0.366 0.866 0 -0.866 1.366 -0.866 0 -0.866 -0.366 0.866 0 0.866 0 0 -1.732 -0.500 0 0 1.732 -0.500 0 0 0 0.500 0 0 0 0.500 +DEAL:BDM1-Transform0::value 2 1.000 0.000 0 0 0 0 1.366 0 -0.366 0 0 -0.366 0 1.366 0 0 0 0 +DEAL:BDM1-Transform0::gradient 2 1.000 0.000 -1.366 0 0 0.866 0.366 0 0 -0.866 1.366 -1.732 0 -0.866 -0.366 1.732 0 0.866 -0.866 0 -1.732 0.366 0.866 0 1.732 -1.366 0.866 0 0 -0.366 -0.866 0 0 1.366 +DEAL:BDM1-Transform0::value +DEAL:BDM1-Transform0::gradient +DEAL:BDM1-Transform0::value 3 0.000 0.500 0.500 0.217 0.500 -0.217 0 -0.217 0 0.217 0 0.683 0 -0.183 0 0.683 0 -0.183 +DEAL:BDM1-Transform0::gradient 3 0.000 0.500 -0.500 -1.732 0 0 -0.500 1.732 0 0 0.500 0 0 0 0.500 0 0 0 0.866 0 -0.866 -1.366 -0.866 0 0.866 0.366 -0.866 0 -0.866 1.366 0.866 0 0.866 -0.366 +DEAL:BDM1-Transform0::value 4 0.500 0.500 0.250 0.217 0.250 -0.217 0.250 -0.217 0.250 0.217 0.217 0.250 -0.217 0.250 -0.217 0.250 0.217 0.250 +DEAL:BDM1-Transform0::gradient 4 0.500 0.500 -0.500 -0.866 0 0 -0.500 0.866 0 0 0.500 -0.866 0 0 0.500 0.866 0 0 0 0 -0.866 -0.500 0 0 0.866 -0.500 0 0 -0.866 0.500 0 0 0.866 0.500 +DEAL:BDM1-Transform0::value 5 1.000 0.500 0 0.217 0 -0.217 0.500 -0.217 0.500 0.217 0 -0.183 0 0.683 0 -0.183 0 0.683 +DEAL:BDM1-Transform0::gradient 5 1.000 0.500 -0.500 0 0 0 -0.500 0 0 0 0.500 -1.732 0 0 0.500 1.732 0 0 -0.866 0 -0.866 0.366 0.866 0 0.866 -1.366 0.866 0 -0.866 -0.366 -0.866 0 0.866 1.366 +DEAL:BDM1-Transform0::value +DEAL:BDM1-Transform0::gradient +DEAL:BDM1-Transform0::value 6 0.000 1.000 -0.366 0 1.366 0 0 0 0 0 0 0 0 0 0 1.366 0 -0.366 +DEAL:BDM1-Transform0::gradient 6 0.000 1.000 0.366 -1.732 0 -0.866 -1.366 1.732 0 0.866 -0.366 0 0 0.866 1.366 0 0 -0.866 0.866 0 0 -1.366 -0.866 0 0 0.366 -0.866 0 -1.732 1.366 0.866 0 1.732 -0.366 +DEAL:BDM1-Transform0::value 7 0.500 1.000 -0.183 0 0.683 0 -0.183 0 0.683 0 0.217 0 -0.217 0 -0.217 0.500 0.217 0.500 +DEAL:BDM1-Transform0::gradient 7 0.500 1.000 0.366 -0.866 0 -0.866 -1.366 0.866 0 0.866 -0.366 -0.866 0 0.866 1.366 0.866 0 -0.866 0 0 0 -0.500 0 0 0 -0.500 0 0 -1.732 0.500 0 0 1.732 0.500 +DEAL:BDM1-Transform0::value 8 1.000 1.000 0 0 0 0 -0.366 0 1.366 0 0 0 0 0 0 -0.366 0 1.366 +DEAL:BDM1-Transform0::gradient 8 1.000 1.000 0.366 0 0 -0.866 -1.366 0 0 0.866 -0.366 -1.732 0 0.866 1.366 1.732 0 -0.866 -0.866 0 0 0.366 0.866 0 0 -1.366 0.866 0 -1.732 -0.366 -0.866 0 1.732 1.366 +DEAL:BDM1-Transform0::value +DEAL:BDM1-Transform0::gradient +DEAL:BDM1-Transform0:: +DEAL:BDM1-Transform1::value 0 0.000 0.000 0 1.366 0 -0.366 0 0 0 0 -1.366 0 0.366 0 0 0 0 0 +DEAL:BDM1-Transform1::gradient 0 0.000 0.000 0.866 0 1.732 -1.366 -0.866 0 -1.732 0.366 -0.866 0 0 1.366 0.866 0 0 -0.366 -1.366 1.732 0 0.866 0.366 -1.732 0 -0.866 1.366 0 0 -0.866 -0.366 0 0 0.866 +DEAL:BDM1-Transform1::value 1 0.000 0.500 0 0.683 0 -0.183 0 0.683 0 -0.183 -0.500 0.217 -0.500 -0.217 0 -0.217 0 0.217 +DEAL:BDM1-Transform1::gradient 1 0.000 0.500 0.866 0 0.866 -1.366 -0.866 0 -0.866 0.366 -0.866 0 0.866 1.366 0.866 0 -0.866 -0.366 -0.500 1.732 0 0 -0.500 -1.732 0 0 0.500 0 0 0 0.500 0 0 0 +DEAL:BDM1-Transform1::value 2 0.000 1.000 0 0 0 0 0 1.366 0 -0.366 0.366 0 -1.366 0 0 0 0 0 +DEAL:BDM1-Transform1::gradient 2 0.000 1.000 0.866 0 0 -1.366 -0.866 0 0 0.366 -0.866 0 1.732 1.366 0.866 0 -1.732 -0.366 0.366 1.732 0 -0.866 -1.366 -1.732 0 0.866 -0.366 0 0 0.866 1.366 0 0 -0.866 +DEAL:BDM1-Transform1::value +DEAL:BDM1-Transform1::gradient +DEAL:BDM1-Transform1::value 3 -0.500 0.000 -0.217 0.500 0.217 0.500 0.217 0 -0.217 0 -0.683 0 0.183 0 -0.683 0 0.183 0 +DEAL:BDM1-Transform1::gradient 3 -0.500 0.000 0 0 1.732 -0.500 0 0 -1.732 -0.500 0 0 0 0.500 0 0 0 0.500 -1.366 0.866 0 0.866 0.366 -0.866 0 -0.866 1.366 0.866 0 -0.866 -0.366 -0.866 0 0.866 +DEAL:BDM1-Transform1::value 4 -0.500 0.500 -0.217 0.250 0.217 0.250 0.217 0.250 -0.217 0.250 -0.250 0.217 -0.250 -0.217 -0.250 -0.217 -0.250 0.217 +DEAL:BDM1-Transform1::gradient 4 -0.500 0.500 0 0 0.866 -0.500 0 0 -0.866 -0.500 0 0 0.866 0.500 0 0 -0.866 0.500 -0.500 0.866 0 0 -0.500 -0.866 0 0 0.500 0.866 0 0 0.500 -0.866 0 0 +DEAL:BDM1-Transform1::value 5 -0.500 1.000 -0.217 0 0.217 0 0.217 0.500 -0.217 0.500 0.183 0 -0.683 0 0.183 0 -0.683 0 +DEAL:BDM1-Transform1::gradient 5 -0.500 1.000 0 0 0 -0.500 0 0 0 -0.500 0 0 1.732 0.500 0 0 -1.732 0.500 0.366 0.866 0 -0.866 -1.366 -0.866 0 0.866 -0.366 0.866 0 0.866 1.366 -0.866 0 -0.866 +DEAL:BDM1-Transform1::value +DEAL:BDM1-Transform1::gradient +DEAL:BDM1-Transform1::value 6 -1.000 0.000 0 -0.366 0 1.366 0 0 0 0 0 0 0 0 -1.366 0 0.366 0 +DEAL:BDM1-Transform1::gradient 6 -1.000 0.000 -0.866 0 1.732 0.366 0.866 0 -1.732 -1.366 0.866 0 0 -0.366 -0.866 0 0 1.366 -1.366 0 0 0.866 0.366 0 0 -0.866 1.366 1.732 0 -0.866 -0.366 -1.732 0 0.866 +DEAL:BDM1-Transform1::value 7 -1.000 0.500 0 -0.183 0 0.683 0 -0.183 0 0.683 0 0.217 0 -0.217 -0.500 -0.217 -0.500 0.217 +DEAL:BDM1-Transform1::gradient 7 -1.000 0.500 -0.866 0 0.866 0.366 0.866 0 -0.866 -1.366 0.866 0 0.866 -0.366 -0.866 0 -0.866 1.366 -0.500 0 0 0 -0.500 0 0 0 0.500 1.732 0 0 0.500 -1.732 0 0 +DEAL:BDM1-Transform1::value 8 -1.000 1.000 0 0 0 0 0 -0.366 0 1.366 0 0 0 0 0.366 0 -1.366 0 +DEAL:BDM1-Transform1::gradient 8 -1.000 1.000 -0.866 0 0 0.366 0.866 0 0 -1.366 0.866 0 1.732 -0.366 -0.866 0 -1.732 1.366 0.366 0 0 -0.866 -1.366 0 0 0.866 -0.366 1.732 0 0.866 1.366 -1.732 0 -0.866 +DEAL:BDM1-Transform1::value +DEAL:BDM1-Transform1::gradient +DEAL:BDM1-Transform1:: +DEAL:BDM1-Transform2::value 0 0.000 0.000 0 0.683 0 -0.183 0 0 0 0 -0.683 0 0.183 0 0 0 0 0 +DEAL:BDM1-Transform2::gradient 0 0.000 0.000 0.217 0 0.433 -0.342 -0.217 0 -0.433 0.092 -0.217 0 0 0.342 0.217 0 0 -0.092 -0.342 0.433 0 0.217 0.092 -0.433 0 -0.217 0.342 0 0 -0.217 -0.092 0 0 0.217 +DEAL:BDM1-Transform2::value 1 0.000 1.000 0 0.342 0 -0.092 0 0.342 0 -0.092 -0.250 0.108 -0.250 -0.108 0 -0.108 0 0.108 +DEAL:BDM1-Transform2::gradient 1 0.000 1.000 0.217 0 0.217 -0.342 -0.217 0 -0.217 0.092 -0.217 0 0.217 0.342 0.217 0 -0.217 -0.092 -0.125 0.433 0 0 -0.125 -0.433 0 0 0.125 0 0 0 0.125 0 0 0 +DEAL:BDM1-Transform2::value 2 0.000 2.000 0 0 0 0 0 0.683 0 -0.183 0.183 0 -0.683 0 0 0 0 0 +DEAL:BDM1-Transform2::gradient 2 0.000 2.000 0.217 0 0 -0.342 -0.217 0 0 0.092 -0.217 0 0.433 0.342 0.217 0 -0.433 -0.092 0.092 0.433 0 -0.217 -0.342 -0.433 0 0.217 -0.092 0 0 0.217 0.342 0 0 -0.217 +DEAL:BDM1-Transform2::value +DEAL:BDM1-Transform2::gradient +DEAL:BDM1-Transform2::value 3 -1.000 0.000 -0.108 0.250 0.108 0.250 0.108 0 -0.108 0 -0.342 0 0.092 0 -0.342 0 0.092 0 +DEAL:BDM1-Transform2::gradient 3 -1.000 0.000 0 0 0.433 -0.125 0 0 -0.433 -0.125 0 0 0 0.125 0 0 0 0.125 -0.342 0.217 0 0.217 0.092 -0.217 0 -0.217 0.342 0.217 0 -0.217 -0.092 -0.217 0 0.217 +DEAL:BDM1-Transform2::value 4 -1.000 1.000 -0.108 0.125 0.108 0.125 0.108 0.125 -0.108 0.125 -0.125 0.108 -0.125 -0.108 -0.125 -0.108 -0.125 0.108 +DEAL:BDM1-Transform2::gradient 4 -1.000 1.000 0 0 0.217 -0.125 0 0 -0.217 -0.125 0 0 0.217 0.125 0 0 -0.217 0.125 -0.125 0.217 0 0 -0.125 -0.217 0 0 0.125 0.217 0 0 0.125 -0.217 0 0 +DEAL:BDM1-Transform2::value 5 -1.000 2.000 -0.108 0 0.108 0 0.108 0.250 -0.108 0.250 0.092 0 -0.342 0 0.092 0 -0.342 0 +DEAL:BDM1-Transform2::gradient 5 -1.000 2.000 0 0 0 -0.125 0 0 0 -0.125 0 0 0.433 0.125 0 0 -0.433 0.125 0.092 0.217 0 -0.217 -0.342 -0.217 0 0.217 -0.092 0.217 0 0.217 0.342 -0.217 0 -0.217 +DEAL:BDM1-Transform2::value +DEAL:BDM1-Transform2::gradient +DEAL:BDM1-Transform2::value 6 -2.000 0.000 0 -0.183 0 0.683 0 0 0 0 0 0 0 0 -0.683 0 0.183 0 +DEAL:BDM1-Transform2::gradient 6 -2.000 0.000 -0.217 0 0.433 0.092 0.217 0 -0.433 -0.342 0.217 0 0 -0.092 -0.217 0 0 0.342 -0.342 0 0 0.217 0.092 0 0 -0.217 0.342 0.433 0 -0.217 -0.092 -0.433 0 0.217 +DEAL:BDM1-Transform2::value 7 -2.000 1.000 0 -0.092 0 0.342 0 -0.092 0 0.342 0 0.108 0 -0.108 -0.250 -0.108 -0.250 0.108 +DEAL:BDM1-Transform2::gradient 7 -2.000 1.000 -0.217 0 0.217 0.092 0.217 0 -0.217 -0.342 0.217 0 0.217 -0.092 -0.217 0 -0.217 0.342 -0.125 0 0 0 -0.125 0 0 0 0.125 0.433 0 0 0.125 -0.433 0 0 +DEAL:BDM1-Transform2::value 8 -2.000 2.000 0 0 0 0 0 -0.183 0 0.683 0 0 0 0 0.183 0 -0.683 0 +DEAL:BDM1-Transform2::gradient 8 -2.000 2.000 -0.217 0 0 0.092 0.217 0 0 -0.342 0.217 0 0.433 -0.092 -0.217 0 -0.433 0.342 0.092 0 0 -0.217 -0.342 0 0 0.217 -0.092 0.433 0 0.217 0.342 -0.433 0 -0.217 +DEAL:BDM1-Transform2::value +DEAL:BDM1-Transform2::gradient +DEAL:BDM1-Transform2:: +DEAL:BDM1-Transform3::value 0 0.000 0.000 1.366 0 -0.366 0 0 0 0 0 0 0.683 0 -0.183 0 0 0 0 +DEAL:BDM1-Transform3::gradient 0 0.000 0.000 -0.683 -1.732 0 0.433 0.183 1.732 0 -0.433 0.683 0 0 -0.433 -0.183 0 0 0.433 0.433 0 -0.433 -0.683 -0.433 0 0.433 0.183 -0.433 0 0 0.683 0.433 0 0 -0.183 +DEAL:BDM1-Transform3::value 1 1.000 0.000 0.683 0 -0.183 0 0.683 0 -0.183 0 0.217 0.250 -0.217 0.250 -0.217 0 0.217 0 +DEAL:BDM1-Transform3::gradient 1 1.000 0.000 -0.683 -0.866 0 0.433 0.183 0.866 0 -0.433 0.683 -0.866 0 -0.433 -0.183 0.866 0 0.433 0 0 -0.433 -0.250 0 0 0.433 -0.250 0 0 0 0.250 0 0 0 0.250 +DEAL:BDM1-Transform3::value 2 2.000 0.000 0 0 0 0 1.366 0 -0.366 0 0 -0.183 0 0.683 0 0 0 0 +DEAL:BDM1-Transform3::gradient 2 2.000 0.000 -0.683 0 0 0.433 0.183 0 0 -0.433 0.683 -1.732 0 -0.433 -0.183 1.732 0 0.433 -0.433 0 -0.433 0.183 0.433 0 0.433 -0.683 0.433 0 0 -0.183 -0.433 0 0 0.683 +DEAL:BDM1-Transform3::value +DEAL:BDM1-Transform3::gradient +DEAL:BDM1-Transform3::value 3 0.000 0.500 0.500 0.108 0.500 -0.108 0 -0.108 0 0.108 0 0.342 0 -0.092 0 0.342 0 -0.092 +DEAL:BDM1-Transform3::gradient 3 0.000 0.500 -0.250 -1.732 0 0 -0.250 1.732 0 0 0.250 0 0 0 0.250 0 0 0 0.433 0 -0.217 -0.683 -0.433 0 0.217 0.183 -0.433 0 -0.217 0.683 0.433 0 0.217 -0.183 +DEAL:BDM1-Transform3::value 4 1.000 0.500 0.250 0.108 0.250 -0.108 0.250 -0.108 0.250 0.108 0.217 0.125 -0.217 0.125 -0.217 0.125 0.217 0.125 +DEAL:BDM1-Transform3::gradient 4 1.000 0.500 -0.250 -0.866 0 0 -0.250 0.866 0 0 0.250 -0.866 0 0 0.250 0.866 0 0 0 0 -0.217 -0.250 0 0 0.217 -0.250 0 0 -0.217 0.250 0 0 0.217 0.250 +DEAL:BDM1-Transform3::value 5 2.000 0.500 0 0.108 0 -0.108 0.500 -0.108 0.500 0.108 0 -0.092 0 0.342 0 -0.092 0 0.342 +DEAL:BDM1-Transform3::gradient 5 2.000 0.500 -0.250 0 0 0 -0.250 0 0 0 0.250 -1.732 0 0 0.250 1.732 0 0 -0.433 0 -0.217 0.183 0.433 0 0.217 -0.683 0.433 0 -0.217 -0.183 -0.433 0 0.217 0.683 +DEAL:BDM1-Transform3::value +DEAL:BDM1-Transform3::gradient +DEAL:BDM1-Transform3::value 6 0.000 1.000 -0.366 0 1.366 0 0 0 0 0 0 0 0 0 0 0.683 0 -0.183 +DEAL:BDM1-Transform3::gradient 6 0.000 1.000 0.183 -1.732 0 -0.433 -0.683 1.732 0 0.433 -0.183 0 0 0.433 0.683 0 0 -0.433 0.433 0 0 -0.683 -0.433 0 0 0.183 -0.433 0 -0.433 0.683 0.433 0 0.433 -0.183 +DEAL:BDM1-Transform3::value 7 1.000 1.000 -0.183 0 0.683 0 -0.183 0 0.683 0 0.217 0 -0.217 0 -0.217 0.250 0.217 0.250 +DEAL:BDM1-Transform3::gradient 7 1.000 1.000 0.183 -0.866 0 -0.433 -0.683 0.866 0 0.433 -0.183 -0.866 0 0.433 0.683 0.866 0 -0.433 0 0 0 -0.250 0 0 0 -0.250 0 0 -0.433 0.250 0 0 0.433 0.250 +DEAL:BDM1-Transform3::value 8 2.000 1.000 0 0 0 0 -0.366 0 1.366 0 0 0 0 0 0 -0.183 0 0.683 +DEAL:BDM1-Transform3::gradient 8 2.000 1.000 0.183 0 0 -0.433 -0.683 0 0 0.433 -0.183 -1.732 0 0.433 0.683 1.732 0 -0.433 -0.433 0 0 0.183 0.433 0 0 -0.683 0.433 0 -0.433 -0.183 -0.433 0 0.433 0.683 +DEAL:BDM1-Transform3::value +DEAL:BDM1-Transform3::gradient +DEAL:BDM1-Transform3:: +DEAL:BDM2-Transform0::value 0 0.000 0.000 1.479 0 -0.667 0 0.188 0 0 0 0 0 0 0 0 1.479 0 -0.667 0 0.188 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM2-Transform0::gradient 0 0.000 0.000 -2.312 -4.624 0 0.556 -0.667 6.667 0 -1.111 -1.021 -2.042 0 0.556 0.645 0 0 -0.556 -2.000 0 0 1.111 -0.645 0 0 -0.556 0.556 0 -4.624 -2.312 -1.111 0 6.667 -0.667 0.556 0 -2.042 -1.021 -0.556 0 0 0.645 1.111 0 0 -2.000 -0.556 0 0 -0.645 6.000 0 0 0 0 0 0 6.000 +DEAL:BDM2-Transform0::value 1 0.500 0.000 0.531 0 -0.667 0 -0.114 0 0.531 0 -0.667 0 -0.114 0 0 0 0 1.000 0 0 0 0 0 0 0 0 1.500 0 0 0 +DEAL:BDM2-Transform0::gradient 1 0.500 0.000 -1.479 -2.312 0 0.556 0.667 3.333 0 -1.111 -0.188 -1.021 0 0.556 1.479 -2.312 0 -0.556 -0.667 3.333 0 1.111 0.188 -1.021 0 -0.556 -0.278 0 -1.291 -0.833 0.556 0 0 -2.333 -0.278 0 1.291 -0.833 0.278 0 0 -0.833 -0.556 0 0 -0.333 0.278 0 0 -0.833 0 0 0 0 0 0 0 6.000 +DEAL:BDM2-Transform0::value 2 1.000 0.000 0 0 0 0 0 0 1.479 0 -0.667 0 0.188 0 0 0.188 0 -0.667 0 1.479 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM2-Transform0::gradient 2 1.000 0.000 -0.645 0 0 0.556 2.000 0 0 -1.111 0.645 0 0 0.556 2.312 -4.624 0 -0.556 0.667 6.667 0 1.111 1.021 -2.042 0 -0.556 0.556 0 2.042 -1.021 -1.111 0 -6.667 -0.667 0.556 0 4.624 -2.312 -0.556 0 0 -0.645 1.111 0 0 -2.000 -0.556 0 0 0.645 -6.000 0 0 0 0 0 0 6.000 +DEAL:BDM2-Transform0::value +DEAL:BDM2-Transform0::gradient +DEAL:BDM2-Transform0::value 3 0.000 0.500 0 0 1.000 0 0 0 0 0 0 0 0 0 0 0.531 0 -0.667 0 -0.114 0 0.531 0 -0.667 0 -0.114 0 0 0 1.500 +DEAL:BDM2-Transform0::gradient 3 0.000 0.500 -0.833 -1.291 0 -0.278 -2.333 0 0 0.556 -0.833 1.291 0 -0.278 -0.833 0 0 0.278 -0.333 0 0 -0.556 -0.833 0 0 0.278 0.556 0 -2.312 -1.479 -1.111 0 3.333 0.667 0.556 0 -1.021 -0.188 -0.556 0 -2.312 1.479 1.111 0 3.333 -0.667 -0.556 0 -1.021 0.188 6.000 0 0 0 0 0 0 0 +DEAL:BDM2-Transform0::value 4 0.500 0.500 -0.208 0 0.167 0 -0.208 0 -0.208 0 0.167 0 -0.208 0 0 -0.208 0 0.167 0 -0.208 0 -0.208 0 0.167 0 -0.208 1.500 0 0 1.500 +DEAL:BDM2-Transform0::gradient 4 0.500 0.500 0 -0.645 0 -0.278 -1.000 0 0 0.556 0 0.645 0 -0.278 0 -0.645 0 0.278 1.000 0 0 -0.556 0 0.645 0 0.278 -0.278 0 -0.645 0 0.556 0 0 -1.000 -0.278 0 0.645 0 0.278 0 -0.645 0 -0.556 0 0 1.000 0.278 0 0.645 0 0 0 0 0 0 0 0 0 +DEAL:BDM2-Transform0::value 5 1.000 0.500 0 0 0 0 0 0 0 0 1.000 0 0 0 0 -0.114 0 -0.667 0 0.531 0 -0.114 0 -0.667 0 0.531 0 0 0 1.500 +DEAL:BDM2-Transform0::gradient 5 1.000 0.500 0.833 0 0 -0.278 0.333 0 0 0.556 0.833 0 0 -0.278 0.833 -1.291 0 0.278 2.333 0 0 -0.556 0.833 1.291 0 0.278 0.556 0 1.021 -0.188 -1.111 0 -3.333 0.667 0.556 0 2.312 -1.479 -0.556 0 1.021 0.188 1.111 0 -3.333 -0.667 -0.556 0 2.312 1.479 -6.000 0 0 0 0 0 0 0 +DEAL:BDM2-Transform0::value +DEAL:BDM2-Transform0::gradient +DEAL:BDM2-Transform0::value 6 0.000 1.000 0.188 0 -0.667 0 1.479 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.479 0 -0.667 0 0.188 0 0 0 0 +DEAL:BDM2-Transform0::gradient 6 0.000 1.000 -1.021 2.042 0 0.556 -0.667 -6.667 0 -1.111 -2.312 4.624 0 0.556 -0.645 0 0 -0.556 -2.000 0 0 1.111 0.645 0 0 -0.556 0.556 0 0 -0.645 -1.111 0 0 2.000 0.556 0 0 0.645 -0.556 0 -4.624 2.312 1.111 0 6.667 0.667 -0.556 0 -2.042 1.021 6.000 0 0 0 0 0 0 -6.000 +DEAL:BDM2-Transform0::value 7 0.500 1.000 -0.114 0 -0.667 0 0.531 0 -0.114 0 -0.667 0 0.531 0 0 0 0 0 0 0 0 0 0 1.000 0 0 1.500 0 0 0 +DEAL:BDM2-Transform0::gradient 7 0.500 1.000 -0.188 1.021 0 0.556 0.667 -3.333 0 -1.111 -1.479 2.312 0 0.556 0.188 1.021 0 -0.556 -0.667 -3.333 0 1.111 1.479 2.312 0 -0.556 -0.278 0 0 0.833 0.556 0 0 0.333 -0.278 0 0 0.833 0.278 0 -1.291 0.833 -0.556 0 0 2.333 0.278 0 1.291 0.833 0 0 0 0 0 0 0 -6.000 +DEAL:BDM2-Transform0::value 8 1.000 1.000 0 0 0 0 0 0 0.188 0 -0.667 0 1.479 0 0 0 0 0 0 0 0 0.188 0 -0.667 0 1.479 0 0 0 0 +DEAL:BDM2-Transform0::gradient 8 1.000 1.000 0.645 0 0 0.556 2.000 0 0 -1.111 -0.645 0 0 0.556 1.021 2.042 0 -0.556 0.667 -6.667 0 1.111 2.312 4.624 0 -0.556 0.556 0 0 0.645 -1.111 0 0 2.000 0.556 0 0 -0.645 -0.556 0 2.042 1.021 1.111 0 -6.667 0.667 -0.556 0 4.624 2.312 -6.000 0 0 0 0 0 0 -6.000 +DEAL:BDM2-Transform0::value +DEAL:BDM2-Transform0::gradient +DEAL:BDM2-Transform0:: +DEAL:BDM2-Transform1::value 0 0.000 0.000 0 1.479 0 -0.667 0 0.188 0 0 0 0 0 0 -1.479 0 0.667 0 -0.188 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM2-Transform1::gradient 0 0.000 0.000 0.556 0 4.624 -2.312 -1.111 0 -6.667 -0.667 0.556 0 2.042 -1.021 -0.556 0 0 0.645 1.111 0 0 -2.000 -0.556 0 0 -0.645 -2.312 4.624 0 0.556 -0.667 -6.667 0 -1.111 -1.021 2.042 0 0.556 0.645 0 0 -0.556 -2.000 0 0 1.111 -0.645 0 0 -0.556 0 0 0 6.000 6.000 0 0 0 +DEAL:BDM2-Transform1::value 1 0.000 0.500 0 0.531 0 -0.667 0 -0.114 0 0.531 0 -0.667 0 -0.114 0 0 -1.000 0 0 0 0 0 0 0 0 0 0 1.500 0 0 +DEAL:BDM2-Transform1::gradient 1 0.000 0.500 0.556 0 2.312 -1.479 -1.111 0 -3.333 0.667 0.556 0 1.021 -0.188 -0.556 0 2.312 1.479 1.111 0 -3.333 -0.667 -0.556 0 1.021 0.188 -0.833 1.291 0 -0.278 -2.333 0 0 0.556 -0.833 -1.291 0 -0.278 -0.833 0 0 0.278 -0.333 0 0 -0.556 -0.833 0 0 0.278 0 0 0 0 6.000 0 0 0 +DEAL:BDM2-Transform1::value 2 0.000 1.000 0 0 0 0 0 0 0 1.479 0 -0.667 0 0.188 -0.188 0 0.667 0 -1.479 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM2-Transform1::gradient 2 0.000 1.000 0.556 0 0 -0.645 -1.111 0 0 2.000 0.556 0 0 0.645 -0.556 0 4.624 2.312 1.111 0 -6.667 0.667 -0.556 0 2.042 1.021 -1.021 -2.042 0 0.556 -0.667 6.667 0 -1.111 -2.312 -4.624 0 0.556 -0.645 0 0 -0.556 -2.000 0 0 1.111 0.645 0 0 -0.556 0 0 0 -6.000 6.000 0 0 0 +DEAL:BDM2-Transform1::value +DEAL:BDM2-Transform1::gradient +DEAL:BDM2-Transform1::value 3 -0.500 0.000 0 0 0 1.000 0 0 0 0 0 0 0 0 -0.531 0 0.667 0 0.114 0 -0.531 0 0.667 0 0.114 0 0 0 -1.500 0 +DEAL:BDM2-Transform1::gradient 3 -0.500 0.000 -0.278 0 1.291 -0.833 0.556 0 0 -2.333 -0.278 0 -1.291 -0.833 0.278 0 0 -0.833 -0.556 0 0 -0.333 0.278 0 0 -0.833 -1.479 2.312 0 0.556 0.667 -3.333 0 -1.111 -0.188 1.021 0 0.556 1.479 2.312 0 -0.556 -0.667 -3.333 0 1.111 0.188 1.021 0 -0.556 0 0 0 6.000 0 0 0 0 +DEAL:BDM2-Transform1::value 4 -0.500 0.500 0 -0.208 0 0.167 0 -0.208 0 -0.208 0 0.167 0 -0.208 0.208 0 -0.167 0 0.208 0 0.208 0 -0.167 0 0.208 0 0 1.500 -1.500 0 +DEAL:BDM2-Transform1::gradient 4 -0.500 0.500 -0.278 0 0.645 0 0.556 0 0 -1.000 -0.278 0 -0.645 0 0.278 0 0.645 0 -0.556 0 0 1.000 0.278 0 -0.645 0 0 0.645 0 -0.278 -1.000 0 0 0.556 0 -0.645 0 -0.278 0 0.645 0 0.278 1.000 0 0 -0.556 0 -0.645 0 0.278 0 0 0 0 0 0 0 0 +DEAL:BDM2-Transform1::value 5 -0.500 1.000 0 0 0 0 0 0 0 0 0 1.000 0 0 0.114 0 0.667 0 -0.531 0 0.114 0 0.667 0 -0.531 0 0 0 -1.500 0 +DEAL:BDM2-Transform1::gradient 5 -0.500 1.000 -0.278 0 0 0.833 0.556 0 0 0.333 -0.278 0 0 0.833 0.278 0 1.291 0.833 -0.556 0 0 2.333 0.278 0 -1.291 0.833 -0.188 -1.021 0 0.556 0.667 3.333 0 -1.111 -1.479 -2.312 0 0.556 0.188 -1.021 0 -0.556 -0.667 3.333 0 1.111 1.479 -2.312 0 -0.556 0 0 0 -6.000 0 0 0 0 +DEAL:BDM2-Transform1::value +DEAL:BDM2-Transform1::gradient +DEAL:BDM2-Transform1::value 6 -1.000 0.000 0 0.188 0 -0.667 0 1.479 0 0 0 0 0 0 0 0 0 0 0 0 -1.479 0 0.667 0 -0.188 0 0 0 0 0 +DEAL:BDM2-Transform1::gradient 6 -1.000 0.000 0.556 0 -2.042 -1.021 -1.111 0 6.667 -0.667 0.556 0 -4.624 -2.312 -0.556 0 0 -0.645 1.111 0 0 -2.000 -0.556 0 0 0.645 -0.645 0 0 0.556 2.000 0 0 -1.111 0.645 0 0 0.556 2.312 4.624 0 -0.556 0.667 -6.667 0 1.111 1.021 2.042 0 -0.556 0 0 0 6.000 -6.000 0 0 0 +DEAL:BDM2-Transform1::value 7 -1.000 0.500 0 -0.114 0 -0.667 0 0.531 0 -0.114 0 -0.667 0 0.531 0 0 0 0 0 0 0 0 -1.000 0 0 0 0 1.500 0 0 +DEAL:BDM2-Transform1::gradient 7 -1.000 0.500 0.556 0 -1.021 -0.188 -1.111 0 3.333 0.667 0.556 0 -2.312 -1.479 -0.556 0 -1.021 0.188 1.111 0 3.333 -0.667 -0.556 0 -2.312 1.479 0.833 0 0 -0.278 0.333 0 0 0.556 0.833 0 0 -0.278 0.833 1.291 0 0.278 2.333 0 0 -0.556 0.833 -1.291 0 0.278 0 0 0 0 -6.000 0 0 0 +DEAL:BDM2-Transform1::value 8 -1.000 1.000 0 0 0 0 0 0 0 0.188 0 -0.667 0 1.479 0 0 0 0 0 0 -0.188 0 0.667 0 -1.479 0 0 0 0 0 +DEAL:BDM2-Transform1::gradient 8 -1.000 1.000 0.556 0 0 0.645 -1.111 0 0 2.000 0.556 0 0 -0.645 -0.556 0 -2.042 1.021 1.111 0 6.667 0.667 -0.556 0 -4.624 2.312 0.645 0 0 0.556 2.000 0 0 -1.111 -0.645 0 0 0.556 1.021 -2.042 0 -0.556 0.667 6.667 0 1.111 2.312 -4.624 0 -0.556 0 0 0 -6.000 -6.000 0 0 0 +DEAL:BDM2-Transform1::value +DEAL:BDM2-Transform1::gradient +DEAL:BDM2-Transform1:: +DEAL:BDM2-Transform2::value 0 0.000 0.000 0 0.739 0 -0.333 0 0.094 0 0 0 0 0 0 -0.739 0 0.333 0 -0.094 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM2-Transform2::gradient 0 0.000 0.000 0.139 0 1.156 -0.578 -0.278 0 -1.667 -0.167 0.139 0 0.511 -0.255 -0.139 0 0 0.161 0.278 0 0 -0.500 -0.139 0 0 -0.161 -0.578 1.156 0 0.139 -0.167 -1.667 0 -0.278 -0.255 0.511 0 0.139 0.161 0 0 -0.139 -0.500 0 0 0.278 -0.161 0 0 -0.139 0 0 0 1.500 1.500 0 0 0 +DEAL:BDM2-Transform2::value 1 0.000 1.000 0 0.266 0 -0.333 0 -0.057 0 0.266 0 -0.333 0 -0.057 0 0 -0.500 0 0 0 0 0 0 0 0 0 0 0.750 0 0 +DEAL:BDM2-Transform2::gradient 1 0.000 1.000 0.139 0 0.578 -0.370 -0.278 0 -0.833 0.167 0.139 0 0.255 -0.047 -0.139 0 0.578 0.370 0.278 0 -0.833 -0.167 -0.139 0 0.255 0.047 -0.208 0.323 0 -0.069 -0.583 0 0 0.139 -0.208 -0.323 0 -0.069 -0.208 0 0 0.069 -0.083 0 0 -0.139 -0.208 0 0 0.069 0 0 0 0 1.500 0 0 0 +DEAL:BDM2-Transform2::value 2 0.000 2.000 0 0 0 0 0 0 0 0.739 0 -0.333 0 0.094 -0.094 0 0.333 0 -0.739 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM2-Transform2::gradient 2 0.000 2.000 0.139 0 0 -0.161 -0.278 0 0 0.500 0.139 0 0 0.161 -0.139 0 1.156 0.578 0.278 0 -1.667 0.167 -0.139 0 0.511 0.255 -0.255 -0.511 0 0.139 -0.167 1.667 0 -0.278 -0.578 -1.156 0 0.139 -0.161 0 0 -0.139 -0.500 0 0 0.278 0.161 0 0 -0.139 0 0 0 -1.500 1.500 0 0 0 +DEAL:BDM2-Transform2::value +DEAL:BDM2-Transform2::gradient +DEAL:BDM2-Transform2::value 3 -1.000 0.000 0 0 0 0.500 0 0 0 0 0 0 0 0 -0.266 0 0.333 0 0.057 0 -0.266 0 0.333 0 0.057 0 0 0 -0.750 0 +DEAL:BDM2-Transform2::gradient 3 -1.000 0.000 -0.069 0 0.323 -0.208 0.139 0 0 -0.583 -0.069 0 -0.323 -0.208 0.069 0 0 -0.208 -0.139 0 0 -0.083 0.069 0 0 -0.208 -0.370 0.578 0 0.139 0.167 -0.833 0 -0.278 -0.047 0.255 0 0.139 0.370 0.578 0 -0.139 -0.167 -0.833 0 0.278 0.047 0.255 0 -0.139 0 0 0 1.500 0 0 0 0 +DEAL:BDM2-Transform2::value 4 -1.000 1.000 0 -0.104 0 0.083 0 -0.104 0 -0.104 0 0.083 0 -0.104 0.104 0 -0.083 0 0.104 0 0.104 0 -0.083 0 0.104 0 0 0.750 -0.750 0 +DEAL:BDM2-Transform2::gradient 4 -1.000 1.000 -0.069 0 0.161 0 0.139 0 0 -0.250 -0.069 0 -0.161 0 0.069 0 0.161 0 -0.139 0 0 0.250 0.069 0 -0.161 0 0 0.161 0 -0.069 -0.250 0 0 0.139 0 -0.161 0 -0.069 0 0.161 0 0.069 0.250 0 0 -0.139 0 -0.161 0 0.069 0 0 0 0 0 0 0 0 +DEAL:BDM2-Transform2::value 5 -1.000 2.000 0 0 0 0 0 0 0 0 0 0.500 0 0 0.057 0 0.333 0 -0.266 0 0.057 0 0.333 0 -0.266 0 0 0 -0.750 0 +DEAL:BDM2-Transform2::gradient 5 -1.000 2.000 -0.069 0 0 0.208 0.139 0 0 0.083 -0.069 0 0 0.208 0.069 0 0.323 0.208 -0.139 0 0 0.583 0.069 0 -0.323 0.208 -0.047 -0.255 0 0.139 0.167 0.833 0 -0.278 -0.370 -0.578 0 0.139 0.047 -0.255 0 -0.139 -0.167 0.833 0 0.278 0.370 -0.578 0 -0.139 0 0 0 -1.500 0 0 0 0 +DEAL:BDM2-Transform2::value +DEAL:BDM2-Transform2::gradient +DEAL:BDM2-Transform2::value 6 -2.000 0.000 0 0.094 0 -0.333 0 0.739 0 0 0 0 0 0 0 0 0 0 0 0 -0.739 0 0.333 0 -0.094 0 0 0 0 0 +DEAL:BDM2-Transform2::gradient 6 -2.000 0.000 0.139 0 -0.511 -0.255 -0.278 0 1.667 -0.167 0.139 0 -1.156 -0.578 -0.139 0 0 -0.161 0.278 0 0 -0.500 -0.139 0 0 0.161 -0.161 0 0 0.139 0.500 0 0 -0.278 0.161 0 0 0.139 0.578 1.156 0 -0.139 0.167 -1.667 0 0.278 0.255 0.511 0 -0.139 0 0 0 1.500 -1.500 0 0 0 +DEAL:BDM2-Transform2::value 7 -2.000 1.000 0 -0.057 0 -0.333 0 0.266 0 -0.057 0 -0.333 0 0.266 0 0 0 0 0 0 0 0 -0.500 0 0 0 0 0.750 0 0 +DEAL:BDM2-Transform2::gradient 7 -2.000 1.000 0.139 0 -0.255 -0.047 -0.278 0 0.833 0.167 0.139 0 -0.578 -0.370 -0.139 0 -0.255 0.047 0.278 0 0.833 -0.167 -0.139 0 -0.578 0.370 0.208 0 0 -0.069 0.083 0 0 0.139 0.208 0 0 -0.069 0.208 0.323 0 0.069 0.583 0 0 -0.139 0.208 -0.323 0 0.069 0 0 0 0 -1.500 0 0 0 +DEAL:BDM2-Transform2::value 8 -2.000 2.000 0 0 0 0 0 0 0 0.094 0 -0.333 0 0.739 0 0 0 0 0 0 -0.094 0 0.333 0 -0.739 0 0 0 0 0 +DEAL:BDM2-Transform2::gradient 8 -2.000 2.000 0.139 0 0 0.161 -0.278 0 0 0.500 0.139 0 0 -0.161 -0.139 0 -0.511 0.255 0.278 0 1.667 0.167 -0.139 0 -1.156 0.578 0.161 0 0 0.139 0.500 0 0 -0.278 -0.161 0 0 0.139 0.255 -0.511 0 -0.139 0.167 1.667 0 0.278 0.578 -1.156 0 -0.139 0 0 0 -1.500 -1.500 0 0 0 +DEAL:BDM2-Transform2::value +DEAL:BDM2-Transform2::gradient +DEAL:BDM2-Transform2:: +DEAL:BDM2-Transform3::value 0 0.000 0.000 1.479 0 -0.667 0 0.188 0 0 0 0 0 0 0 0 0.739 0 -0.333 0 0.094 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM2-Transform3::gradient 0 0.000 0.000 -1.156 -4.624 0 0.278 -0.333 6.667 0 -0.556 -0.511 -2.042 0 0.278 0.323 0 0 -0.278 -1.000 0 0 0.556 -0.323 0 0 -0.278 0.278 0 -1.156 -1.156 -0.556 0 1.667 -0.333 0.278 0 -0.511 -0.511 -0.278 0 0 0.323 0.556 0 0 -1.000 -0.278 0 0 -0.323 3.000 0 0 0 0 0 0 3.000 +DEAL:BDM2-Transform3::value 1 1.000 0.000 0.531 0 -0.667 0 -0.114 0 0.531 0 -0.667 0 -0.114 0 0 0 0 0.500 0 0 0 0 0 0 0 0 1.500 0 0 0 +DEAL:BDM2-Transform3::gradient 1 1.000 0.000 -0.739 -2.312 0 0.278 0.333 3.333 0 -0.556 -0.094 -1.021 0 0.278 0.739 -2.312 0 -0.278 -0.333 3.333 0 0.556 0.094 -1.021 0 -0.278 -0.139 0 -0.323 -0.417 0.278 0 0 -1.167 -0.139 0 0.323 -0.417 0.139 0 0 -0.417 -0.278 0 0 -0.167 0.139 0 0 -0.417 0 0 0 0 0 0 0 3.000 +DEAL:BDM2-Transform3::value 2 2.000 0.000 0 0 0 0 0 0 1.479 0 -0.667 0 0.188 0 0 0.094 0 -0.333 0 0.739 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM2-Transform3::gradient 2 2.000 0.000 -0.323 0 0 0.278 1.000 0 0 -0.556 0.323 0 0 0.278 1.156 -4.624 0 -0.278 0.333 6.667 0 0.556 0.511 -2.042 0 -0.278 0.278 0 0.511 -0.511 -0.556 0 -1.667 -0.333 0.278 0 1.156 -1.156 -0.278 0 0 -0.323 0.556 0 0 -1.000 -0.278 0 0 0.323 -3.000 0 0 0 0 0 0 3.000 +DEAL:BDM2-Transform3::value +DEAL:BDM2-Transform3::gradient +DEAL:BDM2-Transform3::value 3 0.000 0.500 0 0 1.000 0 0 0 0 0 0 0 0 0 0 0.266 0 -0.333 0 -0.057 0 0.266 0 -0.333 0 -0.057 0 0 0 0.750 +DEAL:BDM2-Transform3::gradient 3 0.000 0.500 -0.417 -1.291 0 -0.139 -1.167 0 0 0.278 -0.417 1.291 0 -0.139 -0.417 0 0 0.139 -0.167 0 0 -0.278 -0.417 0 0 0.139 0.278 0 -0.578 -0.739 -0.556 0 0.833 0.333 0.278 0 -0.255 -0.094 -0.278 0 -0.578 0.739 0.556 0 0.833 -0.333 -0.278 0 -0.255 0.094 3.000 0 0 0 0 0 0 0 +DEAL:BDM2-Transform3::value 4 1.000 0.500 -0.208 0 0.167 0 -0.208 0 -0.208 0 0.167 0 -0.208 0 0 -0.104 0 0.083 0 -0.104 0 -0.104 0 0.083 0 -0.104 1.500 0 0 0.750 +DEAL:BDM2-Transform3::gradient 4 1.000 0.500 0 -0.645 0 -0.139 -0.500 0 0 0.278 0 0.645 0 -0.139 0 -0.645 0 0.139 0.500 0 0 -0.278 0 0.645 0 0.139 -0.139 0 -0.161 0 0.278 0 0 -0.500 -0.139 0 0.161 0 0.139 0 -0.161 0 -0.278 0 0 0.500 0.139 0 0.161 0 0 0 0 0 0 0 0 0 +DEAL:BDM2-Transform3::value 5 2.000 0.500 0 0 0 0 0 0 0 0 1.000 0 0 0 0 -0.057 0 -0.333 0 0.266 0 -0.057 0 -0.333 0 0.266 0 0 0 0.750 +DEAL:BDM2-Transform3::gradient 5 2.000 0.500 0.417 0 0 -0.139 0.167 0 0 0.278 0.417 0 0 -0.139 0.417 -1.291 0 0.139 1.167 0 0 -0.278 0.417 1.291 0 0.139 0.278 0 0.255 -0.094 -0.556 0 -0.833 0.333 0.278 0 0.578 -0.739 -0.278 0 0.255 0.094 0.556 0 -0.833 -0.333 -0.278 0 0.578 0.739 -3.000 0 0 0 0 0 0 0 +DEAL:BDM2-Transform3::value +DEAL:BDM2-Transform3::gradient +DEAL:BDM2-Transform3::value 6 0.000 1.000 0.188 0 -0.667 0 1.479 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.739 0 -0.333 0 0.094 0 0 0 0 +DEAL:BDM2-Transform3::gradient 6 0.000 1.000 -0.511 2.042 0 0.278 -0.333 -6.667 0 -0.556 -1.156 4.624 0 0.278 -0.323 0 0 -0.278 -1.000 0 0 0.556 0.323 0 0 -0.278 0.278 0 0 -0.323 -0.556 0 0 1.000 0.278 0 0 0.323 -0.278 0 -1.156 1.156 0.556 0 1.667 0.333 -0.278 0 -0.511 0.511 3.000 0 0 0 0 0 0 -3.000 +DEAL:BDM2-Transform3::value 7 1.000 1.000 -0.114 0 -0.667 0 0.531 0 -0.114 0 -0.667 0 0.531 0 0 0 0 0 0 0 0 0 0 0.500 0 0 1.500 0 0 0 +DEAL:BDM2-Transform3::gradient 7 1.000 1.000 -0.094 1.021 0 0.278 0.333 -3.333 0 -0.556 -0.739 2.312 0 0.278 0.094 1.021 0 -0.278 -0.333 -3.333 0 0.556 0.739 2.312 0 -0.278 -0.139 0 0 0.417 0.278 0 0 0.167 -0.139 0 0 0.417 0.139 0 -0.323 0.417 -0.278 0 0 1.167 0.139 0 0.323 0.417 0 0 0 0 0 0 0 -3.000 +DEAL:BDM2-Transform3::value 8 2.000 1.000 0 0 0 0 0 0 0.188 0 -0.667 0 1.479 0 0 0 0 0 0 0 0 0.094 0 -0.333 0 0.739 0 0 0 0 +DEAL:BDM2-Transform3::gradient 8 2.000 1.000 0.323 0 0 0.278 1.000 0 0 -0.556 -0.323 0 0 0.278 0.511 2.042 0 -0.278 0.333 -6.667 0 0.556 1.156 4.624 0 -0.278 0.278 0 0 0.323 -0.556 0 0 1.000 0.278 0 0 -0.323 -0.278 0 0.511 0.511 0.556 0 -1.667 0.333 -0.278 0 1.156 1.156 -3.000 0 0 0 0 0 0 -3.000 +DEAL:BDM2-Transform3::value +DEAL:BDM2-Transform3::gradient +DEAL:BDM2-Transform3:: +DEAL:BDM3-Transform0::value 0 0.000 0.000 1.527 0 -0.814 0 0.401 0 -0.114 0 0 0 0 0 0 0 0 0 0 1.527 0 -0.814 0 0.401 0 -0.114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM3-Transform0::gradient 0 0.000 0.000 -4.266 -8.546 0 0.371 -2.793 13.807 0 -0.940 -2.012 -7.417 0 0.940 0.070 2.156 0 -0.371 0.527 0 0 -0.371 -1.159 0 0 0.940 2.051 0 0 -0.940 1.582 0 0 0.371 0.371 0 -8.546 -4.266 -0.940 0 13.807 -2.793 0.940 0 -7.417 -2.012 -0.371 0 2.156 0.070 -0.371 0 0 0.527 0.940 0 0 -1.159 -0.940 0 0 2.051 0.371 0 0 1.582 54.000 0 0 0 -60.000 0 0 0 -36.000 0 0 0 0 0 0 54.000 0 0 0 -36.000 0 0 0 -60.000 +DEAL:BDM3-Transform0::value 1 0.500 0.000 0.296 0 -0.901 0 0.205 0 0.150 0 0.296 0 -0.901 0 0.205 0 0.150 0 -0.023 -0.092 0.059 0.592 -0.059 0.592 0.023 -0.092 0.023 0 -0.059 0 0.059 0 -0.023 0 6.000 0 0 0 -9.000 0 0 0 0 0 0 0 +DEAL:BDM3-Transform0::gradient 1 0.500 0.000 -1.092 -3.599 0 0.371 1.629 7.402 0 -0.940 0.414 -4.207 0 0.940 0.549 0.404 0 -0.371 1.092 -3.599 0 -0.371 -1.629 7.402 0 0.940 -0.414 -4.207 0 -0.940 -0.549 0.404 0 0.371 0 0 0.214 -1.299 0 0 -3.484 -3.201 0 0 3.484 -3.201 0 0 -0.214 -1.299 0 0 0 0.256 0 0 0 1.244 0 0 0 1.244 0 0 0 0.256 -15.000 -9.000 0 0 30.000 0 0 0 0 18.000 0 0 0 0 0 36.000 0 0 0 0 0 0 0 -60.000 +DEAL:BDM3-Transform0::value 2 1.000 0.000 0 0 0 0 0 0 0 0 1.527 0 -0.814 0 0.401 0 -0.114 0 0 -0.114 0 0.401 0 -0.814 0 1.527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM3-Transform0::gradient 2 1.000 0.000 -0.527 0 0 0.371 1.159 0 0 -0.940 -2.051 0 0 0.940 -1.582 0 0 -0.371 4.266 -8.546 0 -0.371 2.793 13.807 0 0.940 2.012 -7.417 0 -0.940 -0.070 2.156 0 0.371 -0.371 0 -2.156 0.070 0.940 0 7.417 -2.012 -0.940 0 -13.807 -2.793 0.371 0 8.546 -4.266 0.371 0 0 1.582 -0.940 0 0 2.051 0.940 0 0 -1.159 -0.371 0 0 0.527 6.000 0 0 0 -60.000 0 0 0 36.000 0 0 0 0 0 0 18.000 0 0 0 36.000 0 0 0 -60.000 +DEAL:BDM3-Transform0::value +DEAL:BDM3-Transform0::gradient +DEAL:BDM3-Transform0::value 3 0.000 0.500 -0.092 -0.023 0.592 0.059 0.592 -0.059 -0.092 0.023 0 0.023 0 -0.059 0 0.059 0 -0.023 0 0.296 0 -0.901 0 0.205 0 0.150 0 0.296 0 -0.901 0 0.205 0 0.150 0 0 0 0 0 0 0 6.000 0 -9.000 0 0 +DEAL:BDM3-Transform0::gradient 3 0.000 0.500 -1.299 0.214 0 0 -3.201 -3.484 0 0 -3.201 3.484 0 0 -1.299 -0.214 0 0 0.256 0 0 0 1.244 0 0 0 1.244 0 0 0 0.256 0 0 0 0.371 0 -3.599 -1.092 -0.940 0 7.402 1.629 0.940 0 -4.207 0.414 -0.371 0 0.404 0.549 -0.371 0 -3.599 1.092 0.940 0 7.402 -1.629 -0.940 0 -4.207 -0.414 0.371 0 0.404 -0.549 36.000 0 0 0 -60.000 0 0 0 0 0 0 0 0 0 -9.000 -15.000 0 0 18.000 0 0 0 0 30.000 +DEAL:BDM3-Transform0::value 4 0.500 0.500 -0.177 -0.023 0.052 0.059 0.052 -0.059 -0.177 0.023 -0.177 0.023 0.052 -0.059 0.052 0.059 -0.177 -0.023 -0.023 -0.177 0.059 0.052 -0.059 0.052 0.023 -0.177 0.023 -0.177 -0.059 0.052 0.059 0.052 -0.023 -0.177 1.500 0 0 0 0 0 0 1.500 0 0 0 0 +DEAL:BDM3-Transform0::gradient 4 0.500 0.500 0.527 0.781 0 0 0.223 -1.243 0 0 0.223 1.243 0 0 0.527 -0.781 0 0 -0.527 0.781 0 0 -0.223 -1.243 0 0 -0.223 1.243 0 0 -0.527 -0.781 0 0 0 0 0.781 0.527 0 0 -1.243 0.223 0 0 1.243 0.223 0 0 -0.781 0.527 0 0 0.781 -0.527 0 0 -1.243 -0.223 0 0 1.243 -0.223 0 0 -0.781 -0.527 -15.000 -9.000 0 0 30.000 0 0 0 0 18.000 0 0 0 0 -9.000 -15.000 0 0 18.000 0 0 0 0 30.000 +DEAL:BDM3-Transform0::value 5 1.000 0.500 0 -0.023 0 0.059 0 -0.059 0 0.023 -0.092 0.023 0.592 -0.059 0.592 0.059 -0.092 -0.023 0 0.150 0 0.205 0 -0.901 0 0.296 0 0.150 0 0.205 0 -0.901 0 0.296 0 0 0 0 0 0 0 -3.000 0 9.000 0 0 +DEAL:BDM3-Transform0::gradient 5 1.000 0.500 -0.256 0 0 0 -1.244 0 0 0 -1.244 0 0 0 -0.256 0 0 0 1.299 0.214 0 0 3.201 -3.484 0 0 3.201 3.484 0 0 1.299 -0.214 0 0 -0.371 0 -0.404 0.549 0.940 0 4.207 0.414 -0.940 0 -7.402 1.629 0.371 0 3.599 -1.092 0.371 0 -0.404 -0.549 -0.940 0 4.207 -0.414 0.940 0 -7.402 -1.629 -0.371 0 3.599 1.092 24.000 0 0 0 -60.000 0 0 0 0 0 0 0 0 0 -9.000 -15.000 0 0 18.000 0 0 0 0 30.000 +DEAL:BDM3-Transform0::value +DEAL:BDM3-Transform0::gradient +DEAL:BDM3-Transform0::value 6 0.000 1.000 -0.114 0 0.401 0 -0.814 0 1.527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.527 0 -0.814 0 0.401 0 -0.114 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM3-Transform0::gradient 6 0.000 1.000 0.070 -2.156 0 -0.371 -2.012 7.417 0 0.940 -2.793 -13.807 0 -0.940 -4.266 8.546 0 0.371 1.582 0 0 0.371 2.051 0 0 -0.940 -1.159 0 0 0.940 0.527 0 0 -0.371 0.371 0 0 -0.527 -0.940 0 0 1.159 0.940 0 0 -2.051 -0.371 0 0 -1.582 -0.371 0 -8.546 4.266 0.940 0 13.807 2.793 -0.940 0 -7.417 2.012 0.371 0 2.156 -0.070 18.000 0 0 0 -60.000 0 0 0 36.000 0 0 0 0 0 0 6.000 0 0 0 36.000 0 0 0 -60.000 +DEAL:BDM3-Transform0::value 7 0.500 1.000 0.150 0 0.205 0 -0.901 0 0.296 0 0.150 0 0.205 0 -0.901 0 0.296 0 -0.023 0 0.059 0 -0.059 0 0.023 0 0.023 -0.092 -0.059 0.592 0.059 0.592 -0.023 -0.092 -3.000 0 0 0 9.000 0 0 0 0 0 0 0 +DEAL:BDM3-Transform0::gradient 7 0.500 1.000 0.549 -0.404 0 -0.371 0.414 4.207 0 0.940 1.629 -7.402 0 -0.940 -1.092 3.599 0 0.371 -0.549 -0.404 0 0.371 -0.414 4.207 0 -0.940 -1.629 -7.402 0 0.940 1.092 3.599 0 -0.371 0 0 0 -0.256 0 0 0 -1.244 0 0 0 -1.244 0 0 0 -0.256 0 0 0.214 1.299 0 0 -3.484 3.201 0 0 3.484 3.201 0 0 -0.214 1.299 -15.000 -9.000 0 0 30.000 0 0 0 0 18.000 0 0 0 0 0 24.000 0 0 0 0 0 0 0 -60.000 +DEAL:BDM3-Transform0::value 8 1.000 1.000 0 0 0 0 0 0 0 0 -0.114 0 0.401 0 -0.814 0 1.527 0 0 0 0 0 0 0 0 0 0 -0.114 0 0.401 0 -0.814 0 1.527 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM3-Transform0::gradient 8 1.000 1.000 -1.582 0 0 -0.371 -2.051 0 0 0.940 1.159 0 0 -0.940 -0.527 0 0 0.371 -0.070 -2.156 0 0.371 2.012 7.417 0 -0.940 2.793 -13.807 0 0.940 4.266 8.546 0 -0.371 -0.371 0 0 -1.582 0.940 0 0 -2.051 -0.940 0 0 1.159 0.371 0 0 -0.527 0.371 0 -2.156 -0.070 -0.940 0 7.417 2.012 0.940 0 -13.807 2.793 -0.371 0 8.546 4.266 42.000 0 0 0 -60.000 0 0 0 -36.000 0 0 0 0 0 0 42.000 0 0 0 -36.000 0 0 0 -60.000 +DEAL:BDM3-Transform0::value +DEAL:BDM3-Transform0::gradient +DEAL:BDM3-Transform0:: +DEAL:BDM3-Transform1::value 0 0.000 0.000 0 1.527 0 -0.814 0 0.401 0 -0.114 0 0 0 0 0 0 0 0 -1.527 0 0.814 0 -0.401 0 0.114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM3-Transform1::gradient 0 0.000 0.000 0.371 0 8.546 -4.266 -0.940 0 -13.807 -2.793 0.940 0 7.417 -2.012 -0.371 0 -2.156 0.070 -0.371 0 0 0.527 0.940 0 0 -1.159 -0.940 0 0 2.051 0.371 0 0 1.582 -4.266 8.546 0 0.371 -2.793 -13.807 0 -0.940 -2.012 7.417 0 0.940 0.070 -2.156 0 -0.371 0.527 0 0 -0.371 -1.159 0 0 0.940 2.051 0 0 -0.940 1.582 0 0 0.371 0 0.000 0.000 54.000 0 0.000 0.000 -60.000 0 0.000 0.000 -36.000 54.000 0.000 0.000 0 -36.000 0.000 0.000 0 -60.000 0.000 0.000 0 +DEAL:BDM3-Transform1::value 1 0.000 0.500 0 0.296 0 -0.901 0 0.205 0 0.150 0 0.296 0 -0.901 0 0.205 0 0.150 0.092 -0.023 -0.592 0.059 -0.592 -0.059 0.092 0.023 0 0.023 0 -0.059 0 0.059 0 -0.023 0 6.000 0 0 0 -9.000 0 0 0 0 0 0 +DEAL:BDM3-Transform1::gradient 1 0.000 0.500 0.371 0 3.599 -1.092 -0.940 0 -7.402 1.629 0.940 0 4.207 0.414 -0.371 0 -0.404 0.549 -0.371 0 3.599 1.092 0.940 0 -7.402 -1.629 -0.940 0 4.207 -0.414 0.371 0 -0.404 -0.549 -1.299 -0.214 0 0 -3.201 3.484 0 0 -3.201 -3.484 0 0 -1.299 0.214 0 0 0.256 0 0 0 1.244 0 0 0 1.244 0 0 0 0.256 0 0 0 0 0 9.000 -15.000 0 0.000 0.000 30.000 0 0 -18.000 0 36.000 0.000 0.000 0 0 0 0 0 -60.000 0.000 0.000 0 +DEAL:BDM3-Transform1::value 2 0.000 1.000 0 0 0 0 0 0 0 0 0 1.527 0 -0.814 0 0.401 0 -0.114 0.114 0 -0.401 0 0.814 0 -1.527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM3-Transform1::gradient 2 0.000 1.000 0.371 0 0 -0.527 -0.940 0 0 1.159 0.940 0 0 -2.051 -0.371 0 0 -1.582 -0.371 0 8.546 4.266 0.940 0 -13.807 2.793 -0.940 0 7.417 2.012 0.371 0 -2.156 -0.070 0.070 2.156 0 -0.371 -2.012 -7.417 0 0.940 -2.793 13.807 0 -0.940 -4.266 -8.546 0 0.371 1.582 0 0 0.371 2.051 0 0 -0.940 -1.159 0 0 0.940 0.527 0 0 -0.371 0 0 0 6.000 0 0.000 0.000 -60.000 0 0.000 0.000 36.000 18.000 0 0 0 36.000 0.000 0.000 0 -60.000 0.000 0.000 0 +DEAL:BDM3-Transform1::value +DEAL:BDM3-Transform1::gradient +DEAL:BDM3-Transform1::value 3 -0.500 0.000 0.023 -0.092 -0.059 0.592 0.059 0.592 -0.023 -0.092 -0.023 0 0.059 0 -0.059 0 0.023 0 -0.296 0 0.901 0 -0.205 0 -0.150 0 -0.296 0 0.901 0 -0.205 0 -0.150 0 0 0 0 0 0 0 -6.000 0 9.000 0 0 0 +DEAL:BDM3-Transform1::gradient 3 -0.500 0.000 0 0 -0.214 -1.299 0 0 3.484 -3.201 0 0 -3.484 -3.201 0 0 0.214 -1.299 0 0 0 0.256 0 0 0 1.244 0 0 0 1.244 0 0 0 0.256 -1.092 3.599 0 0.371 1.629 -7.402 0 -0.940 0.414 4.207 0 0.940 0.549 -0.404 0 -0.371 1.092 3.599 0 -0.371 -1.629 -7.402 0 0.940 -0.414 4.207 0 -0.940 -0.549 -0.404 0 0.371 0 0.000 0.000 36.000 0 0.000 0.000 -60.000 0 0 0 0 -15.000 9.000 0 0 0 -18.000 0 0 30.000 0.000 0.000 0 +DEAL:BDM3-Transform1::value 4 -0.500 0.500 0.023 -0.177 -0.059 0.052 0.059 0.052 -0.023 -0.177 -0.023 -0.177 0.059 0.052 -0.059 0.052 0.023 -0.177 0.177 -0.023 -0.052 0.059 -0.052 -0.059 0.177 0.023 0.177 0.023 -0.052 -0.059 -0.052 0.059 0.177 -0.023 0 1.500 0 0 0 0 -1.500 0 0 0 0 0 +DEAL:BDM3-Transform1::gradient 4 -0.500 0.500 0 0 -0.781 0.527 0 0 1.243 0.223 0 0 -1.243 0.223 0 0 0.781 0.527 0 0 -0.781 -0.527 0 0 1.243 -0.223 0 0 -1.243 -0.223 0 0 0.781 -0.527 0.527 -0.781 0 0 0.223 1.243 0 0 0.223 -1.243 0 0 0.527 0.781 0 0 -0.527 -0.781 0 0 -0.223 1.243 0 0 -0.223 -1.243 0 0 -0.527 0.781 0 0 0 0 9.000 -15.000 0 0.000 0.000 30.000 0 0 -18.000 0 -15.000 9.000 0 0 0 -18.000 0 0 30.000 0.000 0.000 0 +DEAL:BDM3-Transform1::value 5 -0.500 1.000 0.023 0 -0.059 0 0.059 0 -0.023 0 -0.023 -0.092 0.059 0.592 -0.059 0.592 0.023 -0.092 -0.150 0 -0.205 0 0.901 0 -0.296 0 -0.150 0 -0.205 0 0.901 0 -0.296 0 0 0 0 0 0 0 3.000 0 -9.000 0 0 0 +DEAL:BDM3-Transform1::gradient 5 -0.500 1.000 0 0 0 -0.256 0 0 0 -1.244 0 0 0 -1.244 0 0 0 -0.256 0 0 -0.214 1.299 0 0 3.484 3.201 0 0 -3.484 3.201 0 0 0.214 1.299 0.549 0.404 0 -0.371 0.414 -4.207 0 0.940 1.629 7.402 0 -0.940 -1.092 -3.599 0 0.371 -0.549 0.404 0 0.371 -0.414 -4.207 0 -0.940 -1.629 7.402 0 0.940 1.092 -3.599 0 -0.371 0 0.000 0.000 24.000 0 0.000 0.000 -60.000 0 0 0 0 -15.000 9.000 0 0 0 -18.000 0 0 30.000 0.000 0.000 0 +DEAL:BDM3-Transform1::value +DEAL:BDM3-Transform1::gradient +DEAL:BDM3-Transform1::value 6 -1.000 0.000 0 -0.114 0 0.401 0 -0.814 0 1.527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.527 0 0.814 0 -0.401 0 0.114 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM3-Transform1::gradient 6 -1.000 0.000 -0.371 0 2.156 0.070 0.940 0 -7.417 -2.012 -0.940 0 13.807 -2.793 0.371 0 -8.546 -4.266 0.371 0 0 1.582 -0.940 0 0 2.051 0.940 0 0 -1.159 -0.371 0 0 0.527 -0.527 0 0 0.371 1.159 0 0 -0.940 -2.051 0 0 0.940 -1.582 0 0 -0.371 4.266 8.546 0 -0.371 2.793 -13.807 0 0.940 2.012 7.417 0 -0.940 -0.070 -2.156 0 0.371 0 0 0 18.000 0 0.000 0.000 -60.000 0 0.000 0.000 36.000 6.000 0 0 0 36.000 0.000 0.000 0 -60.000 0.000 0.000 0 +DEAL:BDM3-Transform1::value 7 -1.000 0.500 0 0.150 0 0.205 0 -0.901 0 0.296 0 0.150 0 0.205 0 -0.901 0 0.296 0 -0.023 0 0.059 0 -0.059 0 0.023 0.092 0.023 -0.592 -0.059 -0.592 0.059 0.092 -0.023 0 -3.000 0 0 0 9.000 0 0 0 0 0 0 +DEAL:BDM3-Transform1::gradient 7 -1.000 0.500 -0.371 0 0.404 0.549 0.940 0 -4.207 0.414 -0.940 0 7.402 1.629 0.371 0 -3.599 -1.092 0.371 0 0.404 -0.549 -0.940 0 -4.207 -0.414 0.940 0 7.402 -1.629 -0.371 0 -3.599 1.092 -0.256 0 0 0 -1.244 0 0 0 -1.244 0 0 0 -0.256 0 0 0 1.299 -0.214 0 0 3.201 3.484 0 0 3.201 -3.484 0 0 1.299 0.214 0 0 0 0 9.000 -15.000 0 0.000 0.000 30.000 0 0 -18.000 0 24.000 0.000 0.000 0 0 0 0 0 -60.000 0.000 0.000 0 +DEAL:BDM3-Transform1::value 8 -1.000 1.000 0 0 0 0 0 0 0 0 0 -0.114 0 0.401 0 -0.814 0 1.527 0 0 0 0 0 0 0 0 0.114 0 -0.401 0 0.814 0 -1.527 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM3-Transform1::gradient 8 -1.000 1.000 -0.371 0 0 -1.582 0.940 0 0 -2.051 -0.940 0 0 1.159 0.371 0 0 -0.527 0.371 0 2.156 -0.070 -0.940 0 -7.417 2.012 0.940 0 13.807 2.793 -0.371 0 -8.546 4.266 -1.582 0 0 -0.371 -2.051 0 0 0.940 1.159 0 0 -0.940 -0.527 0 0 0.371 -0.070 2.156 0 0.371 2.012 -7.417 0 -0.940 2.793 13.807 0 0.940 4.266 -8.546 0 -0.371 0 0.000 0.000 42.000 0 0.000 0.000 -60.000 0 0.000 0.000 -36.000 42.000 0.000 0.000 0 -36.000 0.000 0.000 0 -60.000 0.000 0.000 0 +DEAL:BDM3-Transform1::value +DEAL:BDM3-Transform1::gradient +DEAL:BDM3-Transform1:: +DEAL:BDM3-Transform2::value 0 0.000 0.000 0 0.763 0 -0.407 0 0.200 0 -0.057 0 0 0 0 0 0 0 0 -0.763 0 0.407 0 -0.200 0 0.057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM3-Transform2::gradient 0 0.000 0.000 0.093 0 2.137 -1.067 -0.235 0 -3.452 -0.698 0.235 0 1.854 -0.503 -0.093 0 -0.539 0.018 -0.093 0 0 0.132 0.235 0 0 -0.290 -0.235 0 0 0.513 0.093 0 0 0.395 -1.067 2.137 0 0.093 -0.698 -3.452 0 -0.235 -0.503 1.854 0 0.235 0.018 -0.539 0 -0.093 0.132 0 0 -0.093 -0.290 0 0 0.235 0.513 0 0 -0.235 0.395 0 0 0.093 0 0 0 13.500 0 0 0 -15.000 0 0 0 -9.000 13.500 0 0 0 -9.000 0 0 0 -15.000 0 0 0 +DEAL:BDM3-Transform2::value 1 0.000 1.000 0 0.148 0 -0.450 0 0.103 0 0.075 0 0.148 0 -0.450 0 0.103 0 0.075 0.046 -0.012 -0.296 0.029 -0.296 -0.029 0.046 0.012 0 0.012 0 -0.029 0 0.029 0 -0.012 0 3.000 0 0 0 -4.500 0 0 0 0 0 0 +DEAL:BDM3-Transform2::gradient 1 0.000 1.000 0.093 0 0.900 -0.273 -0.235 0 -1.851 0.407 0.235 0 1.052 0.104 -0.093 0 -0.101 0.137 -0.093 0 0.900 0.273 0.235 0 -1.851 -0.407 -0.235 0 1.052 -0.104 0.093 0 -0.101 -0.137 -0.325 -0.054 0 0 -0.800 0.871 0 0 -0.800 -0.871 0 0 -0.325 0.054 0 0 0.064 0 0 0 0.311 0 0 0 0.311 0 0 0 0.064 0 0 0 0 0 2.250 -3.750 0 0 0 7.500 0 0 -4.500 0 9.000 0 0 0 0 0 0 0 -15.000 0 0 0 +DEAL:BDM3-Transform2::value 2 0.000 2.000 0 0 0 0 0 0 0 0 0 0.763 0 -0.407 0 0.200 0 -0.057 0.057 0 -0.200 0 0.407 0 -0.763 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM3-Transform2::gradient 2 0.000 2.000 0.093 0 0 -0.132 -0.235 0 0 0.290 0.235 0 0 -0.513 -0.093 0 0 -0.395 -0.093 0 2.137 1.067 0.235 0 -3.452 0.698 -0.235 0 1.854 0.503 0.093 0 -0.539 -0.018 0.018 0.539 0 -0.093 -0.503 -1.854 0 0.235 -0.698 3.452 0 -0.235 -1.067 -2.137 0 0.093 0.395 0 0 0.093 0.513 0 0 -0.235 -0.290 0 0 0.235 0.132 0 0 -0.093 0 0 0 1.500 0 0 0 -15.000 0 0 0 9.000 4.500 0 0 0 9.000 0 0 0 -15.000 0 0 0 +DEAL:BDM3-Transform2::value +DEAL:BDM3-Transform2::gradient +DEAL:BDM3-Transform2::value 3 -1.000 0.000 0.012 -0.046 -0.029 0.296 0.029 0.296 -0.012 -0.046 -0.012 0 0.029 0 -0.029 0 0.012 0 -0.148 0 0.450 0 -0.103 0 -0.075 0 -0.148 0 0.450 0 -0.103 0 -0.075 0 0 0 0 0 0 0 -3.000 0 4.500 0 0 0 +DEAL:BDM3-Transform2::gradient 3 -1.000 0.000 0 0 -0.054 -0.325 0 0 0.871 -0.800 0 0 -0.871 -0.800 0 0 0.054 -0.325 0 0 0 0.064 0 0 0 0.311 0 0 0 0.311 0 0 0 0.064 -0.273 0.900 0 0.093 0.407 -1.851 0 -0.235 0.104 1.052 0 0.235 0.137 -0.101 0 -0.093 0.273 0.900 0 -0.093 -0.407 -1.851 0 0.235 -0.104 1.052 0 -0.235 -0.137 -0.101 0 0.093 0 0 0 9.000 0 0 0 -15.000 0 0 0 0 -3.750 2.250 0 0 0 -4.500 0 0 7.500 0 0 0 +DEAL:BDM3-Transform2::value 4 -1.000 1.000 0.012 -0.088 -0.029 0.026 0.029 0.026 -0.012 -0.088 -0.012 -0.088 0.029 0.026 -0.029 0.026 0.012 -0.088 0.088 -0.012 -0.026 0.029 -0.026 -0.029 0.088 0.012 0.088 0.012 -0.026 -0.029 -0.026 0.029 0.088 -0.012 0 0.750 0 0 0 0 -0.750 0 0 0 0 0 +DEAL:BDM3-Transform2::gradient 4 -1.000 1.000 0 0 -0.195 0.132 0 0 0.311 0.056 0 0 -0.311 0.056 0 0 0.195 0.132 0 0 -0.195 -0.132 0 0 0.311 -0.056 0 0 -0.311 -0.056 0 0 0.195 -0.132 0.132 -0.195 0 0 0.056 0.311 0 0 0.056 -0.311 0 0 0.132 0.195 0 0 -0.132 -0.195 0 0 -0.056 0.311 0 0 -0.056 -0.311 0 0 -0.132 0.195 0 0 0 0 2.250 -3.750 0 0 0 7.500 0 0 -4.500 0 -3.750 2.250 0 0 0 -4.500 0 0 7.500 0 0 0 +DEAL:BDM3-Transform2::value 5 -1.000 2.000 0.012 0 -0.029 0 0.029 0 -0.012 0 -0.012 -0.046 0.029 0.296 -0.029 0.296 0.012 -0.046 -0.075 0 -0.103 0 0.450 0 -0.148 0 -0.075 0 -0.103 0 0.450 0 -0.148 0 0 0 0 0 0 0 1.500 0 -4.500 0 0 0 +DEAL:BDM3-Transform2::gradient 5 -1.000 2.000 0 0 0 -0.064 0 0 0 -0.311 0 0 0 -0.311 0 0 0 -0.064 0 0 -0.054 0.325 0 0 0.871 0.800 0 0 -0.871 0.800 0 0 0.054 0.325 0.137 0.101 0 -0.093 0.104 -1.052 0 0.235 0.407 1.851 0 -0.235 -0.273 -0.900 0 0.093 -0.137 0.101 0 0.093 -0.104 -1.052 0 -0.235 -0.407 1.851 0 0.235 0.273 -0.900 0 -0.093 0 0 0 6.000 0 0 0 -15.000 0 0 0 0 -3.750 2.250 0 0 0 -4.500 0 0 7.500 0 0 0 +DEAL:BDM3-Transform2::value +DEAL:BDM3-Transform2::gradient +DEAL:BDM3-Transform2::value 6 -2.000 0.000 0 -0.057 0 0.200 0 -0.407 0 0.763 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.763 0 0.407 0 -0.200 0 0.057 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM3-Transform2::gradient 6 -2.000 0.000 -0.093 0 0.539 0.018 0.235 0 -1.854 -0.503 -0.235 0 3.452 -0.698 0.093 0 -2.137 -1.067 0.093 0 0 0.395 -0.235 0 0 0.513 0.235 0 0 -0.290 -0.093 0 0 0.132 -0.132 0 0 0.093 0.290 0 0 -0.235 -0.513 0 0 0.235 -0.395 0 0 -0.093 1.067 2.137 0 -0.093 0.698 -3.452 0 0.235 0.503 1.854 0 -0.235 -0.018 -0.539 0 0.093 0 0 0 4.500 0 0 0 -15.000 0 0 0 9.000 1.500 0 0 0 9.000 0 0 0 -15.000 0 0 0 +DEAL:BDM3-Transform2::value 7 -2.000 1.000 0 0.075 0 0.103 0 -0.450 0 0.148 0 0.075 0 0.103 0 -0.450 0 0.148 0 -0.012 0 0.029 0 -0.029 0 0.012 0.046 0.012 -0.296 -0.029 -0.296 0.029 0.046 -0.012 0 -1.500 0 0 0 4.500 0 0 0 0 0 0 +DEAL:BDM3-Transform2::gradient 7 -2.000 1.000 -0.093 0 0.101 0.137 0.235 0 -1.052 0.104 -0.235 0 1.851 0.407 0.093 0 -0.900 -0.273 0.093 0 0.101 -0.137 -0.235 0 -1.052 -0.104 0.235 0 1.851 -0.407 -0.093 0 -0.900 0.273 -0.064 0 0 0 -0.311 0 0 0 -0.311 0 0 0 -0.064 0 0 0 0.325 -0.054 0 0 0.800 0.871 0 0 0.800 -0.871 0 0 0.325 0.054 0 0 0 0 2.250 -3.750 0 0 0 7.500 0 0 -4.500 0 6.000 0 0 0 0 0 0 0 -15.000 0 0 0 +DEAL:BDM3-Transform2::value 8 -2.000 2.000 0 0 0 0 0 0 0 0 0 -0.057 0 0.200 0 -0.407 0 0.763 0 0 0 0 0 0 0 0 0.057 0 -0.200 0 0.407 0 -0.763 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM3-Transform2::gradient 8 -2.000 2.000 -0.093 0 0 -0.395 0.235 0 0 -0.513 -0.235 0 0 0.290 0.093 0 0 -0.132 0.093 0 0.539 -0.018 -0.235 0 -1.854 0.503 0.235 0 3.452 0.698 -0.093 0 -2.137 1.067 -0.395 0 0 -0.093 -0.513 0 0 0.235 0.290 0 0 -0.235 -0.132 0 0 0.093 -0.018 0.539 0 0.093 0.503 -1.854 0 -0.235 0.698 3.452 0 0.235 1.067 -2.137 0 -0.093 0 0 0 10.500 0 0 0 -15.000 0 0 0 -9.000 10.500 0 0 0 -9.000 0 0 0 -15.000 0 0 0 +DEAL:BDM3-Transform2::value +DEAL:BDM3-Transform2::gradient +DEAL:BDM3-Transform2:: +DEAL:BDM3-Transform3::value 0 0.000 0.000 1.527 0 -0.814 0 0.401 0 -0.114 0 0 0 0 0 0 0 0 0 0 0.763 0 -0.407 0 0.200 0 -0.057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM3-Transform3::gradient 0 0.000 0.000 -2.133 -8.546 0 0.186 -1.396 13.807 0 -0.470 -1.006 -7.417 0 0.470 0.035 2.156 0 -0.186 0.263 0 0 -0.186 -0.580 0 0 0.470 1.025 0 0 -0.470 0.791 0 0 0.186 0.186 0 -2.137 -2.133 -0.470 0 3.452 -1.396 0.470 0 -1.854 -1.006 -0.186 0 0.539 0.035 -0.186 0 0 0.263 0.470 0 0 -0.580 -0.470 0 0 1.025 0.186 0 0 0.791 27.000 0 0 0 -30.000 0 0 0 -18.000 0 0 0 0 0 0 27.000 0 0 0 -18.000 0 0 0 -30.000 +DEAL:BDM3-Transform3::value 1 1.000 0.000 0.296 0 -0.901 0 0.205 0 0.150 0 0.296 0 -0.901 0 0.205 0 0.150 0 -0.023 -0.046 0.059 0.296 -0.059 0.296 0.023 -0.046 0.023 0 -0.059 0 0.059 0 -0.023 0 6.000 0 0 0 -9.000 0 0 0 0 0 0 0 +DEAL:BDM3-Transform3::gradient 1 1.000 0.000 -0.546 -3.599 0 0.186 0.814 7.402 0 -0.470 0.207 -4.207 0 0.470 0.274 0.404 0 -0.186 0.546 -3.599 0 -0.186 -0.814 7.402 0 0.470 -0.207 -4.207 0 -0.470 -0.274 0.404 0 0.186 0 0 0.054 -0.650 0 0 -0.871 -1.600 0 0 0.871 -1.600 0 0 -0.054 -0.650 0 0 0 0.128 0 0 0 0.622 0 0 0 0.622 0 0 0 0.128 -7.500 -9.000 0 0 15.000 0 0 0 0 18.000 0 0 0 0 0 18.000 0 0 0 0 0 0 0 -30.000 +DEAL:BDM3-Transform3::value 2 2.000 0.000 0 0 0 0 0 0 0 0 1.527 0 -0.814 0 0.401 0 -0.114 0 0 -0.057 0 0.200 0 -0.407 0 0.763 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM3-Transform3::gradient 2 2.000 0.000 -0.263 0 0 0.186 0.580 0 0 -0.470 -1.025 0 0 0.470 -0.791 0 0 -0.186 2.133 -8.546 0 -0.186 1.396 13.807 0 0.470 1.006 -7.417 0 -0.470 -0.035 2.156 0 0.186 -0.186 0 -0.539 0.035 0.470 0 1.854 -1.006 -0.470 0 -3.452 -1.396 0.186 0 2.137 -2.133 0.186 0 0 0.791 -0.470 0 0 1.025 0.470 0 0 -0.580 -0.186 0 0 0.263 3.000 0 0 0 -30.000 0 0 0 18.000 0 0 0 0 0 0 9.000 0 0 0 18.000 0 0 0 -30.000 +DEAL:BDM3-Transform3::value +DEAL:BDM3-Transform3::gradient +DEAL:BDM3-Transform3::value 3 0.000 0.500 -0.092 -0.012 0.592 0.029 0.592 -0.029 -0.092 0.012 0 0.012 0 -0.029 0 0.029 0 -0.012 0 0.148 0 -0.450 0 0.103 0 0.075 0 0.148 0 -0.450 0 0.103 0 0.075 0 0 0 0 0 0 0 3.000 0 -4.500 0 0 +DEAL:BDM3-Transform3::gradient 3 0.000 0.500 -0.650 0.214 0 0 -1.600 -3.484 0 0 -1.600 3.484 0 0 -0.650 -0.214 0 0 0.128 0 0 0 0.622 0 0 0 0.622 0 0 0 0.128 0 0 0 0.186 0 -0.900 -0.546 -0.470 0 1.851 0.814 0.470 0 -1.052 0.207 -0.186 0 0.101 0.274 -0.186 0 -0.900 0.546 0.470 0 1.851 -0.814 -0.470 0 -1.052 -0.207 0.186 0 0.101 -0.274 18.000 0 0 0 -30.000 0 0 0 0 0 0 0 0 0 -2.250 -7.500 0 0 4.500 0 0 0 0 15.000 +DEAL:BDM3-Transform3::value 4 1.000 0.500 -0.177 -0.012 0.052 0.029 0.052 -0.029 -0.177 0.012 -0.177 0.012 0.052 -0.029 0.052 0.029 -0.177 -0.012 -0.023 -0.088 0.059 0.026 -0.059 0.026 0.023 -0.088 0.023 -0.088 -0.059 0.026 0.059 0.026 -0.023 -0.088 1.500 0 0 0 0 0 0 0.750 0 0 0 0 +DEAL:BDM3-Transform3::gradient 4 1.000 0.500 0.264 0.781 0 0 0.111 -1.243 0 0 0.111 1.243 0 0 0.264 -0.781 0 0 -0.264 0.781 0 0 -0.111 -1.243 0 0 -0.111 1.243 0 0 -0.264 -0.781 0 0 0 0 0.195 0.264 0 0 -0.311 0.111 0 0 0.311 0.111 0 0 -0.195 0.264 0 0 0.195 -0.264 0 0 -0.311 -0.111 0 0 0.311 -0.111 0 0 -0.195 -0.264 -7.500 -9.000 0 0 15.000 0 0 0 0 18.000 0 0 0 0 -2.250 -7.500 0 0 4.500 0 0 0 0 15.000 +DEAL:BDM3-Transform3::value 5 2.000 0.500 0 -0.012 0 0.029 0 -0.029 0 0.012 -0.092 0.012 0.592 -0.029 0.592 0.029 -0.092 -0.012 0 0.075 0 0.103 0 -0.450 0 0.148 0 0.075 0 0.103 0 -0.450 0 0.148 0 0 0 0 0 0 0 -1.500 0 4.500 0 0 +DEAL:BDM3-Transform3::gradient 5 2.000 0.500 -0.128 0 0 0 -0.622 0 0 0 -0.622 0 0 0 -0.128 0 0 0 0.650 0.214 0 0 1.600 -3.484 0 0 1.600 3.484 0 0 0.650 -0.214 0 0 -0.186 0 -0.101 0.274 0.470 0 1.052 0.207 -0.470 0 -1.851 0.814 0.186 0 0.900 -0.546 0.186 0 -0.101 -0.274 -0.470 0 1.052 -0.207 0.470 0 -1.851 -0.814 -0.186 0 0.900 0.546 12.000 0 0 0 -30.000 0 0 0 0 0 0 0 0 0 -2.250 -7.500 0 0 4.500 0 0 0 0 15.000 +DEAL:BDM3-Transform3::value +DEAL:BDM3-Transform3::gradient +DEAL:BDM3-Transform3::value 6 0.000 1.000 -0.114 0 0.401 0 -0.814 0 1.527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.763 0 -0.407 0 0.200 0 -0.057 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM3-Transform3::gradient 6 0.000 1.000 0.035 -2.156 0 -0.186 -1.006 7.417 0 0.470 -1.396 -13.807 0 -0.470 -2.133 8.546 0 0.186 0.791 0 0 0.186 1.025 0 0 -0.470 -0.580 0 0 0.470 0.263 0 0 -0.186 0.186 0 0 -0.263 -0.470 0 0 0.580 0.470 0 0 -1.025 -0.186 0 0 -0.791 -0.186 0 -2.137 2.133 0.470 0 3.452 1.396 -0.470 0 -1.854 1.006 0.186 0 0.539 -0.035 9.000 0 0 0 -30.000 0 0 0 18.000 0 0 0 0 0 0 3.000 0 0 0 18.000 0 0 0 -30.000 +DEAL:BDM3-Transform3::value 7 1.000 1.000 0.150 0 0.205 0 -0.901 0 0.296 0 0.150 0 0.205 0 -0.901 0 0.296 0 -0.023 0 0.059 0 -0.059 0 0.023 0 0.023 -0.046 -0.059 0.296 0.059 0.296 -0.023 -0.046 -3.000 0 0 0 9.000 0 0 0 0 0 0 0 +DEAL:BDM3-Transform3::gradient 7 1.000 1.000 0.274 -0.404 0 -0.186 0.207 4.207 0 0.470 0.814 -7.402 0 -0.470 -0.546 3.599 0 0.186 -0.274 -0.404 0 0.186 -0.207 4.207 0 -0.470 -0.814 -7.402 0 0.470 0.546 3.599 0 -0.186 0 0 0 -0.128 0 0 0 -0.622 0 0 0 -0.622 0 0 0 -0.128 0 0 0.054 0.650 0 0 -0.871 1.600 0 0 0.871 1.600 0 0 -0.054 0.650 -7.500 -9.000 0 0 15.000 0 0 0 0 18.000 0 0 0 0 0 12.000 0 0 0 0 0 0 0 -30.000 +DEAL:BDM3-Transform3::value 8 2.000 1.000 0 0 0 0 0 0 0 0 -0.114 0 0.401 0 -0.814 0 1.527 0 0 0 0 0 0 0 0 0 0 -0.057 0 0.200 0 -0.407 0 0.763 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:BDM3-Transform3::gradient 8 2.000 1.000 -0.791 0 0 -0.186 -1.025 0 0 0.470 0.580 0 0 -0.470 -0.263 0 0 0.186 -0.035 -2.156 0 0.186 1.006 7.417 0 -0.470 1.396 -13.807 0 0.470 2.133 8.546 0 -0.186 -0.186 0 0 -0.791 0.470 0 0 -1.025 -0.470 0 0 0.580 0.186 0 0 -0.263 0.186 0 -0.539 -0.035 -0.470 0 1.854 1.006 0.470 0 -3.452 1.396 -0.186 0 2.137 2.133 21.000 0 0 0 -30.000 0 0 0 -18.000 0 0 0 0 0 0 21.000 0 0 0 -18.000 0 0 0 -30.000 +DEAL:BDM3-Transform3::value +DEAL:BDM3-Transform3::gradient +DEAL:BDM3-Transform3:: diff --git a/tests/fe/bdm_3.cc b/tests/fe/bdm_3.cc new file mode 100644 index 0000000000..361810668c --- /dev/null +++ b/tests/fe/bdm_3.cc @@ -0,0 +1,70 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2003 - 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. +// +// --------------------------------------------------------------------- + + + +// Just output the constraint matrices of the RT element + +#include "../tests.h" +#include +#include + +#include +#include + +#define PRECISION 4 + + + +template +void +test(const unsigned int degree) +{ + deallog << "FE_BDM<" << dim << "> (" << degree << ")" + << std::endl; + + FE_BDM fe_rt(degree); + const FullMatrix &constraints = fe_rt.constraints(); + + for (unsigned int i=0; i(degree); + + return 0; +} + + + diff --git a/tests/fe/bdm_3.output b/tests/fe/bdm_3.output new file mode 100644 index 0000000000..427bd2fad5 --- /dev/null +++ b/tests/fe/bdm_3.output @@ -0,0 +1,25 @@ + +DEAL::FE_BDM<2> (1) +DEAL::0.5915 -0.0915 +DEAL::0.3415 0.1585 +DEAL::0.1585 0.3415 +DEAL::-0.0915 0.5915 +DEAL:: +DEAL::FE_BDM<2> (2) +DEAL::0.6144 -0.1561 0.0417 +DEAL::0.2655 0.2917 -0.0572 +DEAL::0.0417 0.4894 -0.0311 +DEAL::-0.0311 0.4894 0.0417 +DEAL::-0.0572 0.2917 0.2655 +DEAL::0.0417 -0.1561 0.6144 +DEAL:: +DEAL::FE_BDM<2> (3) +DEAL::0.6235 -0.1857 0.0863 -0.0242 +DEAL::0.2367 0.3472 -0.1135 0.0295 +DEAL::-0.0037 0.4979 0.0074 -0.0016 +DEAL::-0.0478 0.3543 0.2341 -0.0407 +DEAL::-0.0407 0.2341 0.3543 -0.0478 +DEAL::-0.0016 0.0074 0.4979 -0.0037 +DEAL::0.0295 -0.1135 0.3472 0.2367 +DEAL::-0.0242 0.0863 -0.1857 0.6235 +DEAL:: diff --git a/tests/fe/bdm_5.cc b/tests/fe/bdm_5.cc new file mode 100644 index 0000000000..17dceb8a39 --- /dev/null +++ b/tests/fe/bdm_5.cc @@ -0,0 +1,74 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2003 - 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. +// +// --------------------------------------------------------------------- + + + +// Just output the restriction matrices of the BDM element + +#include "../tests.h" +#include +#include + +#include +#include + +#define PRECISION 8 + + + +template +void +test(const unsigned int degree) +{ + deallog << "FE_BDM<" << dim << "> (" << degree << ")" + << std::endl; + + FE_BDM fe_rt(degree); + + for (unsigned int c=0; c::max_children_per_cell; ++c) + { + const FullMatrix &m = fe_rt.get_restriction_matrix(c); + + for (unsigned int i=0; i(degree); +// test<3>(degree); + } + + return 0; +} diff --git a/tests/fe/bdm_5.output b/tests/fe/bdm_5.output new file mode 100644 index 0000000000..7d2e46c1d4 --- /dev/null +++ b/tests/fe/bdm_5.output @@ -0,0 +1,192 @@ + +DEAL::FE_BDM<2> (1) +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL:: +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL:: +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL:: +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL:: +DEAL::FE_BDM<2> (2) +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:: +DEAL::FE_BDM<2> (3) +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:: diff --git a/tests/fe/bdm_8.cc b/tests/fe/bdm_8.cc new file mode 100644 index 0000000000..f2d7e2354a --- /dev/null +++ b/tests/fe/bdm_8.cc @@ -0,0 +1,116 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2003 - 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. +// +// --------------------------------------------------------------------- + + +// build a mass matrix for the RT element and try to invert it. we had trouble +// with this at one time + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define PRECISION 5 + + +std::ofstream logfile ("output"); + +template +void +test (const unsigned int degree) +{ + FE_BDM fe_rt(degree); + Triangulation tr; + GridGenerator::hyper_cube(tr, 0., 1.); + + DoFHandler dof(tr); + typename DoFHandler::cell_iterator c = dof.begin(); + dof.distribute_dofs(fe_rt); + + QTrapez<1> q_trapez; + const unsigned int div=4; + QIterated q(q_trapez, div); + FEValues fe(fe_rt, q, update_values|update_JxW_values); + fe.reinit(c); + + const unsigned int dofs_per_cell = fe_rt.dofs_per_cell; + FullMatrix mass_matrix (dofs_per_cell, dofs_per_cell); + + Assert (fe.get_fe().n_components() == dim, ExcInternalError()); + + + for (unsigned int q_point=0; q_point vector_memory; + SolverCG<> cg (solver_control, vector_memory); + + Vector tmp1(dofs_per_cell), tmp2(dofs_per_cell); + for (unsigned int i=0; i(i); + + return 0; +} + + + diff --git a/tests/fe/bdm_8.output b/tests/fe/bdm_8.output new file mode 100644 index 0000000000..6e89414c9e --- /dev/null +++ b/tests/fe/bdm_8.output @@ -0,0 +1,54 @@ + +0.208 -0.036 0.058 0.020 0.068 0.068 +-0.036 0.208 0.020 0.058 -0.068 -0.068 +0.058 0.020 0.208 -0.036 -0.068 -0.068 +0.020 0.058 -0.036 0.208 0.068 0.068 +0.068 0.068 0.208 -0.036 0.058 0.020 + -0.068 -0.068 -0.036 0.208 0.020 0.058 + -0.068 -0.068 0.058 0.020 0.208 -0.036 +0.068 0.068 0.020 0.058 -0.036 0.208 +DEAL:cg::Starting value 1.91960 +DEAL:cg::Convergence step 4 value 0 +DEAL::Degree=1: 4 iterations to obtain convergence. +0.105 -0.050 -0.003 0.036 -0.030 -0.013 0.004 -0.002 0.004 -0.004 0.002 -0.004 -0.020 +-0.050 0.169 -0.050 -0.030 0.058 -0.030 -0.002 -0.010 -0.002 0.002 0.010 0.002 -0.090 +-0.003 -0.050 0.105 -0.013 -0.030 0.036 0.004 -0.002 0.004 -0.004 0.002 -0.004 -0.020 +0.036 -0.030 -0.013 0.105 -0.050 -0.003 -0.004 0.002 -0.004 0.004 -0.002 0.004 -0.020 +-0.030 0.058 -0.030 -0.050 0.169 -0.050 0.002 0.010 0.002 -0.002 -0.010 -0.002 -0.090 +-0.013 -0.030 0.036 -0.003 -0.050 0.105 -0.004 0.002 -0.004 0.004 -0.002 0.004 -0.020 +0.004 -0.002 0.004 -0.004 0.002 -0.004 0.105 -0.050 -0.003 0.036 -0.030 -0.013 -0.020 +-0.002 -0.010 -0.002 0.002 0.010 0.002 -0.050 0.169 -0.050 -0.030 0.058 -0.030 -0.090 +0.004 -0.002 0.004 -0.004 0.002 -0.004 -0.003 -0.050 0.105 -0.013 -0.030 0.036 -0.020 +-0.004 0.002 -0.004 0.004 -0.002 0.004 0.036 -0.030 -0.013 0.105 -0.050 -0.003 -0.020 +0.002 0.010 0.002 -0.002 -0.010 -0.002 -0.030 0.058 -0.030 -0.050 0.169 -0.050 -0.090 +-0.004 0.002 -0.004 0.004 -0.002 0.004 -0.013 -0.030 0.036 -0.003 -0.050 0.105 -0.020 +-0.020 -0.090 -0.020 -0.020 -0.090 -0.020 1.195 + -0.020 -0.090 -0.020 -0.020 -0.090 -0.020 1.195 +DEAL:cg::Starting value 2.12523 +DEAL:cg::Convergence step 9 value 0.00000 +DEAL::Degree=2: 9 iterations to obtain convergence. +0.072 -0.058 0.015 0.002 0.016 -0.031 0.001 0.011 0.000 0.000 0.001 0.001 0.000 0.000 -0.040 0.084 -0.016 -0.006 +-0.058 0.151 -0.056 0.015 -0.031 0.067 -0.039 0.001 0.000 -0.002 -0.001 -0.001 -0.002 0.000 -0.404 0.224 0.468 0.016 +0.015 -0.056 0.151 -0.058 0.001 -0.039 0.067 -0.031 0.001 0.002 0.000 0.000 0.002 0.001 0.064 0.224 -0.468 -0.016 +0.002 0.015 -0.058 0.072 0.011 0.001 -0.031 0.016 -0.001 0.000 0.000 0.000 0.000 -0.001 -0.057 0.084 0.016 0.006 +0.016 -0.031 0.001 0.011 0.072 -0.058 0.015 0.002 -0.001 0.000 0.000 0.000 0.000 -0.001 0.043 -0.084 -0.016 0.006 +-0.031 0.067 -0.039 0.001 -0.058 0.151 -0.056 0.015 0.001 0.002 0.000 0.000 0.002 0.001 -0.180 -0.224 0.468 -0.016 +0.001 -0.039 0.067 -0.031 0.015 -0.056 0.151 -0.058 0.000 -0.002 -0.001 -0.001 -0.002 0.000 0.288 -0.224 -0.468 0.016 +0.011 0.001 -0.031 0.016 0.002 0.015 -0.058 0.072 0.000 0.000 0.001 0.001 0.000 0.000 0.027 -0.084 0.016 -0.006 +0.000 0.000 0.001 0.001 0.000 0.000 0.072 -0.058 0.015 0.002 0.016 -0.031 0.001 0.011 -0.006 -0.040 -0.016 0.084 +0.000 -0.002 -0.001 -0.001 -0.002 0.000 -0.058 0.151 -0.056 0.015 -0.031 0.067 -0.039 0.001 0.016 -0.404 0.468 0.224 +0.001 0.002 0.000 0.000 0.002 0.001 0.015 -0.056 0.151 -0.058 0.001 -0.039 0.067 -0.031 -0.016 0.064 -0.468 0.224 + -0.001 0.000 0.000 0.000 0.000 -0.001 0.002 0.015 -0.058 0.072 0.011 0.001 -0.031 0.016 0.006 -0.057 0.016 0.084 + -0.001 0.000 0.000 0.000 0.000 -0.001 0.016 -0.031 0.001 0.011 0.072 -0.058 0.015 0.002 0.006 0.043 -0.016 -0.084 +0.001 0.002 0.000 0.000 0.002 0.001 -0.031 0.067 -0.039 0.001 -0.058 0.151 -0.056 0.015 -0.016 -0.180 0.468 -0.224 +0.000 -0.002 -0.001 -0.001 -0.002 0.000 0.001 -0.039 0.067 -0.031 0.015 -0.056 0.151 -0.058 0.016 0.288 -0.468 -0.224 +0.000 0.000 0.001 0.001 0.000 0.000 0.011 0.001 -0.031 0.016 0.002 0.015 -0.058 0.072 -0.006 0.027 0.016 -0.084 +-0.040 -0.404 0.064 -0.057 0.043 -0.180 0.288 0.027 -0.006 0.016 -0.016 0.006 0.006 -0.016 0.016 -0.006 9.185 -7.910 -8.068 +0.084 0.224 0.224 0.084 -0.084 -0.224 -0.224 -0.084 -7.910 15.820 +-0.016 0.468 -0.468 0.016 -0.016 0.468 -0.468 0.016 -8.068 16.137 +-0.006 0.016 -0.016 0.006 0.006 -0.016 0.016 -0.006 -0.040 -0.404 0.064 -0.057 0.043 -0.180 0.288 0.027 9.185 -8.068 -7.910 + -0.016 0.468 -0.468 0.016 -0.016 0.468 -0.468 0.016 -8.068 16.137 + 0.084 0.224 0.224 0.084 -0.084 -0.224 -0.224 -0.084 -7.910 15.820 +DEAL:cg::Starting value 2.78069 +DEAL:cg::Convergence step 14 value 0.00000 +DEAL::Degree=3: 14 iterations to obtain convergence. diff --git a/tests/fe/bdm_9.cc b/tests/fe/bdm_9.cc new file mode 100644 index 0000000000..e9558ccda2 --- /dev/null +++ b/tests/fe/bdm_9.cc @@ -0,0 +1,107 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2003 - 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. +// +// --------------------------------------------------------------------- + + +// build a mass matrix for the RT element and try to invert it. like the rt_8 +// test, except that we use a library function to build the mass matrix + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define PRECISION 2 + + +std::ofstream logfile ("output"); + +template +void +test (const unsigned int degree) +{ + FE_BDM fe_rt(degree); + Triangulation tr; + GridGenerator::hyper_cube(tr, 0., 1.); + + DoFHandler dof(tr); + dof.distribute_dofs(fe_rt); + + QTrapez<1> q_trapez; + const unsigned int div=4; + QIterated q(q_trapez, div); + + const unsigned int dofs_per_cell = fe_rt.dofs_per_cell; + SparsityPattern sp (dofs_per_cell, dofs_per_cell, dofs_per_cell); + for (unsigned int i=0; i mass_matrix (sp); + + MatrixTools::create_mass_matrix (dof, q, mass_matrix); + + mass_matrix.print_formatted (logfile, 3, false, 0, " ", 1); + + SolverControl solver_control (dofs_per_cell, + 1e-8); + PrimitiveVectorMemory<> vector_memory; + SolverCG<> cg (solver_control, vector_memory); + + Vector tmp1(dofs_per_cell), tmp2(dofs_per_cell); + for (unsigned int i=0; i(i); + + return 0; +} + + + diff --git a/tests/fe/bdm_9.output b/tests/fe/bdm_9.output new file mode 100644 index 0000000000..f84f547694 --- /dev/null +++ b/tests/fe/bdm_9.output @@ -0,0 +1,54 @@ + +0.208 -0.036 0.058 0.020 0.068 0.000 0.000 0.068 +-0.036 0.208 0.020 0.058 0.000 -0.068 -0.068 0.000 +0.058 0.020 0.208 -0.036 0.000 -0.068 -0.068 0.000 +0.020 0.058 -0.036 0.208 0.068 0.000 0.000 0.068 +0.068 0.000 0.000 0.068 0.208 -0.036 0.058 0.020 +0.000 -0.068 -0.068 0.000 -0.036 0.208 0.020 0.058 +0.000 -0.068 -0.068 0.000 0.058 0.020 0.208 -0.036 +0.068 0.000 0.000 0.068 0.020 0.058 -0.036 0.208 +DEAL:cg::Starting value 1.92 +DEAL:cg::Convergence step 4 value 0 +DEAL::Degree=1: 4 iterations to obtain convergence. +0.105 -0.050 -0.003 0.036 -0.030 -0.013 0.004 -0.002 0.004 -0.004 0.002 -0.004 -0.020 0.000 +-0.050 0.169 -0.050 -0.030 0.058 -0.030 -0.002 -0.010 -0.002 0.002 0.010 0.002 -0.090 0.000 +-0.003 -0.050 0.105 -0.013 -0.030 0.036 0.004 -0.002 0.004 -0.004 0.002 -0.004 -0.020 0.000 +0.036 -0.030 -0.013 0.105 -0.050 -0.003 -0.004 0.002 -0.004 0.004 -0.002 0.004 -0.020 0.000 +-0.030 0.058 -0.030 -0.050 0.169 -0.050 0.002 0.010 0.002 -0.002 -0.010 -0.002 -0.090 0.000 +-0.013 -0.030 0.036 -0.003 -0.050 0.105 -0.004 0.002 -0.004 0.004 -0.002 0.004 -0.020 0.000 +0.004 -0.002 0.004 -0.004 0.002 -0.004 0.105 -0.050 -0.003 0.036 -0.030 -0.013 0.000 -0.020 +-0.002 -0.010 -0.002 0.002 0.010 0.002 -0.050 0.169 -0.050 -0.030 0.058 -0.030 0.000 -0.090 +0.004 -0.002 0.004 -0.004 0.002 -0.004 -0.003 -0.050 0.105 -0.013 -0.030 0.036 0.000 -0.020 +-0.004 0.002 -0.004 0.004 -0.002 0.004 0.036 -0.030 -0.013 0.105 -0.050 -0.003 0.000 -0.020 +0.002 0.010 0.002 -0.002 -0.010 -0.002 -0.030 0.058 -0.030 -0.050 0.169 -0.050 0.000 -0.090 +-0.004 0.002 -0.004 0.004 -0.002 0.004 -0.013 -0.030 0.036 -0.003 -0.050 0.105 0.000 -0.020 +-0.020 -0.090 -0.020 -0.020 -0.090 -0.020 0.000 0.000 0.000 0.000 0.000 0.000 1.195 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 -0.020 -0.090 -0.020 -0.020 -0.090 -0.020 0.000 1.195 +DEAL:cg::Starting value 2.13 +DEAL:cg::Convergence step 9 value 0.00 +DEAL::Degree=2: 9 iterations to obtain convergence. +0.072 -0.058 0.015 0.002 0.016 -0.031 0.001 0.011 0.000 0.000 0.001 0.000 0.000 0.001 0.000 0.000 -0.040 0.084 -0.016 -0.006 0.000 0.000 +-0.058 0.151 -0.056 0.015 -0.031 0.067 -0.039 0.001 0.000 -0.002 0.000 -0.001 -0.001 0.000 -0.002 0.000 -0.404 0.224 0.468 0.016 0.000 0.000 +0.015 -0.056 0.151 -0.058 0.001 -0.039 0.067 -0.031 0.001 0.000 0.002 0.000 0.000 0.002 0.000 0.001 0.064 0.224 -0.468 -0.016 0.000 0.000 +0.002 0.015 -0.058 0.072 0.011 0.001 -0.031 0.016 0.000 -0.001 0.000 0.000 0.000 0.000 -0.001 0.000 -0.057 0.084 0.016 0.006 0.000 0.000 +0.016 -0.031 0.001 0.011 0.072 -0.058 0.015 0.002 0.000 -0.001 0.000 0.000 0.000 0.000 -0.001 0.000 0.043 -0.084 -0.016 0.006 0.000 0.000 +-0.031 0.067 -0.039 0.001 -0.058 0.151 -0.056 0.015 0.001 0.000 0.002 0.000 0.000 0.002 0.000 0.001 -0.180 -0.224 0.468 -0.016 0.000 0.000 +0.001 -0.039 0.067 -0.031 0.015 -0.056 0.151 -0.058 0.000 -0.002 0.000 -0.001 -0.001 0.000 -0.002 0.000 0.288 -0.224 -0.468 0.016 0.000 0.000 +0.011 0.001 -0.031 0.016 0.002 0.015 -0.058 0.072 0.000 0.000 0.001 0.000 0.000 0.001 0.000 0.000 0.027 -0.084 0.016 -0.006 0.000 0.000 +0.000 0.000 0.001 0.000 0.000 0.001 0.000 0.000 0.072 -0.058 0.015 0.002 0.016 -0.031 0.001 0.011 -0.006 0.000 0.000 -0.040 -0.016 0.084 +0.000 -0.002 0.000 -0.001 -0.001 0.000 -0.002 0.000 -0.058 0.151 -0.056 0.015 -0.031 0.067 -0.039 0.001 0.016 0.000 0.000 -0.404 0.468 0.224 +0.001 0.000 0.002 0.000 0.000 0.002 0.000 0.001 0.015 -0.056 0.151 -0.058 0.001 -0.039 0.067 -0.031 -0.016 0.000 0.000 0.064 -0.468 0.224 +0.000 -0.001 0.000 0.000 0.000 0.000 -0.001 0.000 0.002 0.015 -0.058 0.072 0.011 0.001 -0.031 0.016 0.006 0.000 0.000 -0.057 0.016 0.084 +0.000 -0.001 0.000 0.000 0.000 0.000 -0.001 0.000 0.016 -0.031 0.001 0.011 0.072 -0.058 0.015 0.002 0.006 0.000 0.000 0.043 -0.016 -0.084 +0.001 0.000 0.002 0.000 0.000 0.002 0.000 0.001 -0.031 0.067 -0.039 0.001 -0.058 0.151 -0.056 0.015 -0.016 0.000 0.000 -0.180 0.468 -0.224 +0.000 -0.002 0.000 -0.001 -0.001 0.000 -0.002 0.000 0.001 -0.039 0.067 -0.031 0.015 -0.056 0.151 -0.058 0.016 0.000 0.000 0.288 -0.468 -0.224 +0.000 0.000 0.001 0.000 0.000 0.001 0.000 0.000 0.011 0.001 -0.031 0.016 0.002 0.015 -0.058 0.072 -0.006 0.000 0.000 0.027 0.016 -0.084 +-0.040 -0.404 0.064 -0.057 0.043 -0.180 0.288 0.027 -0.006 0.016 -0.016 0.006 0.006 -0.016 0.016 -0.006 9.185 -7.910 -8.068 0.000 0.000 0.000 +0.084 0.224 0.224 0.084 -0.084 -0.224 -0.224 -0.084 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -7.910 15.820 0.000 0.000 0.000 0.000 +-0.016 0.468 -0.468 0.016 -0.016 0.468 -0.468 0.016 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -8.068 0.000 16.137 0.000 0.000 0.000 +-0.006 0.016 -0.016 0.006 0.006 -0.016 0.016 -0.006 -0.040 -0.404 0.064 -0.057 0.043 -0.180 0.288 0.027 0.000 0.000 0.000 9.185 -8.068 -7.910 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -0.016 0.468 -0.468 0.016 -0.016 0.468 -0.468 0.016 0.000 0.000 0.000 -8.068 16.137 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.084 0.224 0.224 0.084 -0.084 -0.224 -0.224 -0.084 0.000 0.000 0.000 -7.910 0.000 15.820 +DEAL:cg::Starting value 2.78 +DEAL:cg::Convergence step 14 value 0.00 +DEAL::Degree=3: 14 iterations to obtain convergence. diff --git a/tests/fe/element_constant_modes.cc b/tests/fe/element_constant_modes.cc index 4ae2eab1fa..54e7d407c3 100644 --- a/tests/fe/element_constant_modes.cc +++ b/tests/fe/element_constant_modes.cc @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -30,9 +31,9 @@ template void print_constant_modes(const FiniteElement &fe) { - Table<2,bool> constant_modes = fe.get_constant_modes(); deallog << "Testing " << fe.get_name() << std::endl; + Table<2,bool> constant_modes = fe.get_constant_modes().first; for (unsigned int r=0; r(1)); print_constant_modes(FESystem(FE_Q(1), 2, FE_Q(2), 1)); print_constant_modes(FESystem(FE_DGP(1), 1, FE_Q_iso_Q1(2), 1)); + print_constant_modes(FE_Q_DG0(1)); + print_constant_modes(FESystem(FE_Q_DG0(2), 1, FE_Q(1), 2)); + print_constant_modes(FESystem(FE_Q(1), 2, FE_Q_DG0(1), 2)); } template <> diff --git a/tests/fe/element_constant_modes.output b/tests/fe/element_constant_modes.output index 428dbf5c6e..076019878b 100644 --- a/tests/fe/element_constant_modes.output +++ b/tests/fe/element_constant_modes.output @@ -44,6 +44,24 @@ DEAL::Testing FESystem<2>[FE_DGP<2>(1)-FE_Q_iso_Q1<2>(2)] DEAL::0 0 0 0 0 0 0 0 1 0 0 0 DEAL::1 1 1 1 1 1 1 1 0 0 0 1 DEAL:: +DEAL::Testing FE_Q_DG0<2>(1) +DEAL::1 1 1 1 0 +DEAL::0 0 0 0 1 +DEAL:: +DEAL::Testing FESystem<2>[FE_Q_DG0<2>(2)-FE_Q<2>(1)^2] +DEAL::1 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +DEAL::0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 +DEAL::0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 +DEAL:: +DEAL::Testing FESystem<2>[FE_Q<2>(1)^2-FE_Q_DG0<2>(1)^2] +DEAL::1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 +DEAL::0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 +DEAL::0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +DEAL::0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +DEAL:: DEAL::Testing FE_Q<3>(1) DEAL::1 1 1 1 1 1 1 1 DEAL:: @@ -77,3 +95,21 @@ DEAL::Testing FESystem<3>[FE_DGP<3>(1)-FE_Q_iso_Q1<3>(2)] DEAL::0 0 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 0 0 0 0 DEAL::1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 DEAL:: +DEAL::Testing FE_Q_DG0<3>(1) +DEAL::1 1 1 1 1 1 1 1 0 +DEAL::0 0 0 0 0 0 0 0 1 +DEAL:: +DEAL::Testing FESystem<3>[FE_Q_DG0<3>(2)-FE_Q<3>(1)^2] +DEAL::1 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 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 +DEAL::0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL:: +DEAL::Testing FESystem<3>[FE_Q<3>(1)^2-FE_Q_DG0<3>(1)^2] +DEAL::1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 +DEAL::0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 +DEAL::0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 +DEAL::0 0 0 0 0 0 0 0 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 0 +DEAL::0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 +DEAL::0 0 0 0 0 0 0 0 0 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 +DEAL:: diff --git a/tests/fe/get_name_01.cc b/tests/fe/get_name_01.cc new file mode 100644 index 0000000000..c5419776bf --- /dev/null +++ b/tests/fe/get_name_01.cc @@ -0,0 +1,77 @@ +// --------------------------------------------------------------------- +// $Id: system_01.cc 31349 2013-10-20 19:07:06Z maier $ +// +// Copyright (C) 2003 - 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 get_name() + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +template +void test(const FiniteElement &fe) +{ + deallog << fe.get_name() << std::endl; + +} + + +int +main() +{ + initlog(); + + { + FE_Q<2> fe(1); + test(fe); + } + { + FE_Q<2> fe(QGaussLobatto<1>(4)); + test(fe); + } + { + QGauss<1> quadrature_g(5); + FE_DGQArbitraryNodes<2> fe(quadrature_g); + test(fe); + } + { + QGaussLobatto<1> quadrature_gl(5); + FE_DGQArbitraryNodes<2> fe(quadrature_gl); + test(fe); + } + { + QGaussLog<1> quadrature(3); + FE_DGQArbitraryNodes<2> fe(quadrature); + test(fe); + } + + + + return 0; +} + + + diff --git a/tests/fe/get_name_01.output b/tests/fe/get_name_01.output new file mode 100644 index 0000000000..63e96d9687 --- /dev/null +++ b/tests/fe/get_name_01.output @@ -0,0 +1,6 @@ + +DEAL::FE_Q<2>(1) +DEAL::FE_Q<2>(QGaussLobatto(4)) +DEAL::FE_DGQArbitraryNodes<2>(QUnknownNodes(4)) +DEAL::FE_DGQArbitraryNodes<2>(QGaussLobatto(5)) +DEAL::FE_DGQArbitraryNodes<2>(QUnknownNodes(2)) diff --git a/tests/grid/ordering_01.cc b/tests/grid/ordering_01.cc deleted file mode 100644 index 593b2e2ac0..0000000000 --- a/tests/grid/ordering_01.cc +++ /dev/null @@ -1,89 +0,0 @@ -// --------------------------------------------------------------------- -// $Id$ -// -// Copyright (C) 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. -// -// --------------------------------------------------------------------- - -#include "../tests.h" - -#include -#include -#include -#include -#include -#include - -#include -#include - -using namespace dealii; - - -template -void -show_ordering(const Triangulation &tr) -{ - for (typename Triangulation::cell_iterator cell = tr.begin(); cell != tr.end(); ++cell) - for (typename Triangulation::cell_iterator other = tr.begin(); other != tr.end(); ++other) - { - deallog << (cell < other ? "less " : "not "); - deallog << cell->level_subdomain_id() << ':' << other->level_subdomain_id() << ' '; - if (cell->active()) - deallog << cell->subdomain_id(); - else - deallog << 'X'; - deallog << ':'; - if (other->active()) - deallog << other->subdomain_id(); - else - deallog << 'X'; - deallog << ' '; - deallog << cell->level() << ':' << other->level() << ' '; - deallog << cell->index() << ':' << other->index() << ' '; - deallog << std::endl; - } -} - -template -void test1() -{ - Triangulation tr; - GridGenerator::hyper_ball(tr); - - typename Triangulation::active_cell_iterator cell = tr.begin_active(); - cell->set_subdomain_id(4); - cell->set_level_subdomain_id(4); - ++cell; - cell->set_subdomain_id(3); - cell->set_level_subdomain_id(5); - - tr.refine_global(1); - cell = tr.begin_active(); - cell->set_level_subdomain_id(3); - (++cell)->set_level_subdomain_id(4); - (++cell)->set_level_subdomain_id(5); - ++cell; - (++cell)->set_level_subdomain_id(3); - (++cell)->set_level_subdomain_id(4); - (++cell)->set_level_subdomain_id(5); - - show_ordering(tr); -} - -int main() -{ - initlog(); - - test1<2>(); - return 0; -} diff --git a/tests/grid/ordering_01.output b/tests/grid/ordering_01.output deleted file mode 100644 index d80597d783..0000000000 --- a/tests/grid/ordering_01.output +++ /dev/null @@ -1,626 +0,0 @@ - -DEAL::not 4:4 X:X 0:0 0:0 -DEAL::less 4:5 X:X 0:0 0:1 -DEAL::not 4:0 X:X 0:0 0:2 -DEAL::not 4:0 X:X 0:0 0:3 -DEAL::not 4:0 X:X 0:0 0:4 -DEAL::not 4:3 X:4 0:1 0:0 -DEAL::less 4:4 X:4 0:1 0:1 -DEAL::less 4:5 X:4 0:1 0:2 -DEAL::not 4:0 X:4 0:1 0:3 -DEAL::not 4:3 X:3 0:1 0:4 -DEAL::less 4:4 X:3 0:1 0:5 -DEAL::less 4:5 X:3 0:1 0:6 -DEAL::not 4:0 X:3 0:1 0:7 -DEAL::not 4:0 X:0 0:1 0:8 -DEAL::not 4:0 X:0 0:1 0:9 -DEAL::not 4:0 X:0 0:1 0:10 -DEAL::not 4:0 X:0 0:1 0:11 -DEAL::not 4:0 X:0 0:1 0:12 -DEAL::not 4:0 X:0 0:1 0:13 -DEAL::not 4:0 X:0 0:1 0:14 -DEAL::not 4:0 X:0 0:1 0:15 -DEAL::not 4:0 X:0 0:1 0:16 -DEAL::not 4:0 X:0 0:1 0:17 -DEAL::not 4:0 X:0 0:1 0:18 -DEAL::not 4:0 X:0 0:1 0:19 -DEAL::not 5:4 X:X 0:0 1:0 -DEAL::not 5:5 X:X 0:0 1:1 -DEAL::not 5:0 X:X 0:0 1:2 -DEAL::not 5:0 X:X 0:0 1:3 -DEAL::not 5:0 X:X 0:0 1:4 -DEAL::not 5:3 X:4 0:1 1:0 -DEAL::not 5:4 X:4 0:1 1:1 -DEAL::less 5:5 X:4 0:1 1:2 -DEAL::not 5:0 X:4 0:1 1:3 -DEAL::not 5:3 X:3 0:1 1:4 -DEAL::not 5:4 X:3 0:1 1:5 -DEAL::less 5:5 X:3 0:1 1:6 -DEAL::not 5:0 X:3 0:1 1:7 -DEAL::not 5:0 X:0 0:1 1:8 -DEAL::not 5:0 X:0 0:1 1:9 -DEAL::not 5:0 X:0 0:1 1:10 -DEAL::not 5:0 X:0 0:1 1:11 -DEAL::not 5:0 X:0 0:1 1:12 -DEAL::not 5:0 X:0 0:1 1:13 -DEAL::not 5:0 X:0 0:1 1:14 -DEAL::not 5:0 X:0 0:1 1:15 -DEAL::not 5:0 X:0 0:1 1:16 -DEAL::not 5:0 X:0 0:1 1:17 -DEAL::not 5:0 X:0 0:1 1:18 -DEAL::not 5:0 X:0 0:1 1:19 -DEAL::less 0:4 X:X 0:0 2:0 -DEAL::less 0:5 X:X 0:0 2:1 -DEAL::not 0:0 X:X 0:0 2:2 -DEAL::less 0:0 X:X 0:0 2:3 -DEAL::less 0:0 X:X 0:0 2:4 -DEAL::less 0:3 X:4 0:1 2:0 -DEAL::less 0:4 X:4 0:1 2:1 -DEAL::less 0:5 X:4 0:1 2:2 -DEAL::less 0:0 X:4 0:1 2:3 -DEAL::less 0:3 X:3 0:1 2:4 -DEAL::less 0:4 X:3 0:1 2:5 -DEAL::less 0:5 X:3 0:1 2:6 -DEAL::less 0:0 X:3 0:1 2:7 -DEAL::less 0:0 X:0 0:1 2:8 -DEAL::less 0:0 X:0 0:1 2:9 -DEAL::less 0:0 X:0 0:1 2:10 -DEAL::less 0:0 X:0 0:1 2:11 -DEAL::less 0:0 X:0 0:1 2:12 -DEAL::less 0:0 X:0 0:1 2:13 -DEAL::less 0:0 X:0 0:1 2:14 -DEAL::less 0:0 X:0 0:1 2:15 -DEAL::less 0:0 X:0 0:1 2:16 -DEAL::less 0:0 X:0 0:1 2:17 -DEAL::less 0:0 X:0 0:1 2:18 -DEAL::less 0:0 X:0 0:1 2:19 -DEAL::less 0:4 X:X 0:0 3:0 -DEAL::less 0:5 X:X 0:0 3:1 -DEAL::not 0:0 X:X 0:0 3:2 -DEAL::not 0:0 X:X 0:0 3:3 -DEAL::less 0:0 X:X 0:0 3:4 -DEAL::less 0:3 X:4 0:1 3:0 -DEAL::less 0:4 X:4 0:1 3:1 -DEAL::less 0:5 X:4 0:1 3:2 -DEAL::less 0:0 X:4 0:1 3:3 -DEAL::less 0:3 X:3 0:1 3:4 -DEAL::less 0:4 X:3 0:1 3:5 -DEAL::less 0:5 X:3 0:1 3:6 -DEAL::less 0:0 X:3 0:1 3:7 -DEAL::less 0:0 X:0 0:1 3:8 -DEAL::less 0:0 X:0 0:1 3:9 -DEAL::less 0:0 X:0 0:1 3:10 -DEAL::less 0:0 X:0 0:1 3:11 -DEAL::less 0:0 X:0 0:1 3:12 -DEAL::less 0:0 X:0 0:1 3:13 -DEAL::less 0:0 X:0 0:1 3:14 -DEAL::less 0:0 X:0 0:1 3:15 -DEAL::less 0:0 X:0 0:1 3:16 -DEAL::less 0:0 X:0 0:1 3:17 -DEAL::less 0:0 X:0 0:1 3:18 -DEAL::less 0:0 X:0 0:1 3:19 -DEAL::less 0:4 X:X 0:0 4:0 -DEAL::less 0:5 X:X 0:0 4:1 -DEAL::not 0:0 X:X 0:0 4:2 -DEAL::not 0:0 X:X 0:0 4:3 -DEAL::not 0:0 X:X 0:0 4:4 -DEAL::less 0:3 X:4 0:1 4:0 -DEAL::less 0:4 X:4 0:1 4:1 -DEAL::less 0:5 X:4 0:1 4:2 -DEAL::less 0:0 X:4 0:1 4:3 -DEAL::less 0:3 X:3 0:1 4:4 -DEAL::less 0:4 X:3 0:1 4:5 -DEAL::less 0:5 X:3 0:1 4:6 -DEAL::less 0:0 X:3 0:1 4:7 -DEAL::less 0:0 X:0 0:1 4:8 -DEAL::less 0:0 X:0 0:1 4:9 -DEAL::less 0:0 X:0 0:1 4:10 -DEAL::less 0:0 X:0 0:1 4:11 -DEAL::less 0:0 X:0 0:1 4:12 -DEAL::less 0:0 X:0 0:1 4:13 -DEAL::less 0:0 X:0 0:1 4:14 -DEAL::less 0:0 X:0 0:1 4:15 -DEAL::less 0:0 X:0 0:1 4:16 -DEAL::less 0:0 X:0 0:1 4:17 -DEAL::less 0:0 X:0 0:1 4:18 -DEAL::less 0:0 X:0 0:1 4:19 -DEAL::less 3:4 4:X 1:0 0:0 -DEAL::less 3:5 4:X 1:0 0:1 -DEAL::not 3:0 4:X 1:0 0:2 -DEAL::not 3:0 4:X 1:0 0:3 -DEAL::not 3:0 4:X 1:0 0:4 -DEAL::not 3:3 4:4 1:1 0:0 -DEAL::less 3:4 4:4 1:1 0:1 -DEAL::less 3:5 4:4 1:1 0:2 -DEAL::not 3:0 4:4 1:1 0:3 -DEAL::not 3:3 4:3 1:1 0:4 -DEAL::less 3:4 4:3 1:1 0:5 -DEAL::less 3:5 4:3 1:1 0:6 -DEAL::not 3:0 4:3 1:1 0:7 -DEAL::not 3:0 4:0 1:1 0:8 -DEAL::not 3:0 4:0 1:1 0:9 -DEAL::not 3:0 4:0 1:1 0:10 -DEAL::not 3:0 4:0 1:1 0:11 -DEAL::not 3:0 4:0 1:1 0:12 -DEAL::not 3:0 4:0 1:1 0:13 -DEAL::not 3:0 4:0 1:1 0:14 -DEAL::not 3:0 4:0 1:1 0:15 -DEAL::not 3:0 4:0 1:1 0:16 -DEAL::not 3:0 4:0 1:1 0:17 -DEAL::not 3:0 4:0 1:1 0:18 -DEAL::not 3:0 4:0 1:1 0:19 -DEAL::not 4:4 4:X 1:0 1:0 -DEAL::less 4:5 4:X 1:0 1:1 -DEAL::not 4:0 4:X 1:0 1:2 -DEAL::not 4:0 4:X 1:0 1:3 -DEAL::not 4:0 4:X 1:0 1:4 -DEAL::not 4:3 4:4 1:1 1:0 -DEAL::not 4:4 4:4 1:1 1:1 -DEAL::less 4:5 4:4 1:1 1:2 -DEAL::not 4:0 4:4 1:1 1:3 -DEAL::not 4:3 4:3 1:1 1:4 -DEAL::not 4:4 4:3 1:1 1:5 -DEAL::less 4:5 4:3 1:1 1:6 -DEAL::not 4:0 4:3 1:1 1:7 -DEAL::not 4:0 4:0 1:1 1:8 -DEAL::not 4:0 4:0 1:1 1:9 -DEAL::not 4:0 4:0 1:1 1:10 -DEAL::not 4:0 4:0 1:1 1:11 -DEAL::not 4:0 4:0 1:1 1:12 -DEAL::not 4:0 4:0 1:1 1:13 -DEAL::not 4:0 4:0 1:1 1:14 -DEAL::not 4:0 4:0 1:1 1:15 -DEAL::not 4:0 4:0 1:1 1:16 -DEAL::not 4:0 4:0 1:1 1:17 -DEAL::not 4:0 4:0 1:1 1:18 -DEAL::not 4:0 4:0 1:1 1:19 -DEAL::not 5:4 4:X 1:0 2:0 -DEAL::not 5:5 4:X 1:0 2:1 -DEAL::not 5:0 4:X 1:0 2:2 -DEAL::not 5:0 4:X 1:0 2:3 -DEAL::not 5:0 4:X 1:0 2:4 -DEAL::not 5:3 4:4 1:1 2:0 -DEAL::not 5:4 4:4 1:1 2:1 -DEAL::not 5:5 4:4 1:1 2:2 -DEAL::not 5:0 4:4 1:1 2:3 -DEAL::not 5:3 4:3 1:1 2:4 -DEAL::not 5:4 4:3 1:1 2:5 -DEAL::not 5:5 4:3 1:1 2:6 -DEAL::not 5:0 4:3 1:1 2:7 -DEAL::not 5:0 4:0 1:1 2:8 -DEAL::not 5:0 4:0 1:1 2:9 -DEAL::not 5:0 4:0 1:1 2:10 -DEAL::not 5:0 4:0 1:1 2:11 -DEAL::not 5:0 4:0 1:1 2:12 -DEAL::not 5:0 4:0 1:1 2:13 -DEAL::not 5:0 4:0 1:1 2:14 -DEAL::not 5:0 4:0 1:1 2:15 -DEAL::not 5:0 4:0 1:1 2:16 -DEAL::not 5:0 4:0 1:1 2:17 -DEAL::not 5:0 4:0 1:1 2:18 -DEAL::not 5:0 4:0 1:1 2:19 -DEAL::less 0:4 4:X 1:0 3:0 -DEAL::less 0:5 4:X 1:0 3:1 -DEAL::not 0:0 4:X 1:0 3:2 -DEAL::not 0:0 4:X 1:0 3:3 -DEAL::not 0:0 4:X 1:0 3:4 -DEAL::less 0:3 4:4 1:1 3:0 -DEAL::less 0:4 4:4 1:1 3:1 -DEAL::less 0:5 4:4 1:1 3:2 -DEAL::not 0:0 4:4 1:1 3:3 -DEAL::less 0:3 4:3 1:1 3:4 -DEAL::less 0:4 4:3 1:1 3:5 -DEAL::less 0:5 4:3 1:1 3:6 -DEAL::not 0:0 4:3 1:1 3:7 -DEAL::not 0:0 4:0 1:1 3:8 -DEAL::not 0:0 4:0 1:1 3:9 -DEAL::not 0:0 4:0 1:1 3:10 -DEAL::not 0:0 4:0 1:1 3:11 -DEAL::not 0:0 4:0 1:1 3:12 -DEAL::not 0:0 4:0 1:1 3:13 -DEAL::not 0:0 4:0 1:1 3:14 -DEAL::not 0:0 4:0 1:1 3:15 -DEAL::not 0:0 4:0 1:1 3:16 -DEAL::not 0:0 4:0 1:1 3:17 -DEAL::not 0:0 4:0 1:1 3:18 -DEAL::not 0:0 4:0 1:1 3:19 -DEAL::less 3:4 3:X 1:0 4:0 -DEAL::less 3:5 3:X 1:0 4:1 -DEAL::not 3:0 3:X 1:0 4:2 -DEAL::not 3:0 3:X 1:0 4:3 -DEAL::not 3:0 3:X 1:0 4:4 -DEAL::less 3:3 3:4 1:1 4:0 -DEAL::less 3:4 3:4 1:1 4:1 -DEAL::less 3:5 3:4 1:1 4:2 -DEAL::not 3:0 3:4 1:1 4:3 -DEAL::not 3:3 3:3 1:1 4:4 -DEAL::less 3:4 3:3 1:1 4:5 -DEAL::less 3:5 3:3 1:1 4:6 -DEAL::not 3:0 3:3 1:1 4:7 -DEAL::not 3:0 3:0 1:1 4:8 -DEAL::not 3:0 3:0 1:1 4:9 -DEAL::not 3:0 3:0 1:1 4:10 -DEAL::not 3:0 3:0 1:1 4:11 -DEAL::not 3:0 3:0 1:1 4:12 -DEAL::not 3:0 3:0 1:1 4:13 -DEAL::not 3:0 3:0 1:1 4:14 -DEAL::not 3:0 3:0 1:1 4:15 -DEAL::not 3:0 3:0 1:1 4:16 -DEAL::not 3:0 3:0 1:1 4:17 -DEAL::not 3:0 3:0 1:1 4:18 -DEAL::not 3:0 3:0 1:1 4:19 -DEAL::not 4:4 3:X 1:0 5:0 -DEAL::less 4:5 3:X 1:0 5:1 -DEAL::not 4:0 3:X 1:0 5:2 -DEAL::not 4:0 3:X 1:0 5:3 -DEAL::not 4:0 3:X 1:0 5:4 -DEAL::not 4:3 3:4 1:1 5:0 -DEAL::less 4:4 3:4 1:1 5:1 -DEAL::less 4:5 3:4 1:1 5:2 -DEAL::not 4:0 3:4 1:1 5:3 -DEAL::not 4:3 3:3 1:1 5:4 -DEAL::not 4:4 3:3 1:1 5:5 -DEAL::less 4:5 3:3 1:1 5:6 -DEAL::not 4:0 3:3 1:1 5:7 -DEAL::not 4:0 3:0 1:1 5:8 -DEAL::not 4:0 3:0 1:1 5:9 -DEAL::not 4:0 3:0 1:1 5:10 -DEAL::not 4:0 3:0 1:1 5:11 -DEAL::not 4:0 3:0 1:1 5:12 -DEAL::not 4:0 3:0 1:1 5:13 -DEAL::not 4:0 3:0 1:1 5:14 -DEAL::not 4:0 3:0 1:1 5:15 -DEAL::not 4:0 3:0 1:1 5:16 -DEAL::not 4:0 3:0 1:1 5:17 -DEAL::not 4:0 3:0 1:1 5:18 -DEAL::not 4:0 3:0 1:1 5:19 -DEAL::not 5:4 3:X 1:0 6:0 -DEAL::not 5:5 3:X 1:0 6:1 -DEAL::not 5:0 3:X 1:0 6:2 -DEAL::not 5:0 3:X 1:0 6:3 -DEAL::not 5:0 3:X 1:0 6:4 -DEAL::not 5:3 3:4 1:1 6:0 -DEAL::not 5:4 3:4 1:1 6:1 -DEAL::less 5:5 3:4 1:1 6:2 -DEAL::not 5:0 3:4 1:1 6:3 -DEAL::not 5:3 3:3 1:1 6:4 -DEAL::not 5:4 3:3 1:1 6:5 -DEAL::not 5:5 3:3 1:1 6:6 -DEAL::not 5:0 3:3 1:1 6:7 -DEAL::not 5:0 3:0 1:1 6:8 -DEAL::not 5:0 3:0 1:1 6:9 -DEAL::not 5:0 3:0 1:1 6:10 -DEAL::not 5:0 3:0 1:1 6:11 -DEAL::not 5:0 3:0 1:1 6:12 -DEAL::not 5:0 3:0 1:1 6:13 -DEAL::not 5:0 3:0 1:1 6:14 -DEAL::not 5:0 3:0 1:1 6:15 -DEAL::not 5:0 3:0 1:1 6:16 -DEAL::not 5:0 3:0 1:1 6:17 -DEAL::not 5:0 3:0 1:1 6:18 -DEAL::not 5:0 3:0 1:1 6:19 -DEAL::less 0:4 3:X 1:0 7:0 -DEAL::less 0:5 3:X 1:0 7:1 -DEAL::not 0:0 3:X 1:0 7:2 -DEAL::not 0:0 3:X 1:0 7:3 -DEAL::not 0:0 3:X 1:0 7:4 -DEAL::less 0:3 3:4 1:1 7:0 -DEAL::less 0:4 3:4 1:1 7:1 -DEAL::less 0:5 3:4 1:1 7:2 -DEAL::less 0:0 3:4 1:1 7:3 -DEAL::less 0:3 3:3 1:1 7:4 -DEAL::less 0:4 3:3 1:1 7:5 -DEAL::less 0:5 3:3 1:1 7:6 -DEAL::not 0:0 3:3 1:1 7:7 -DEAL::not 0:0 3:0 1:1 7:8 -DEAL::not 0:0 3:0 1:1 7:9 -DEAL::not 0:0 3:0 1:1 7:10 -DEAL::not 0:0 3:0 1:1 7:11 -DEAL::not 0:0 3:0 1:1 7:12 -DEAL::not 0:0 3:0 1:1 7:13 -DEAL::not 0:0 3:0 1:1 7:14 -DEAL::not 0:0 3:0 1:1 7:15 -DEAL::not 0:0 3:0 1:1 7:16 -DEAL::not 0:0 3:0 1:1 7:17 -DEAL::not 0:0 3:0 1:1 7:18 -DEAL::not 0:0 3:0 1:1 7:19 -DEAL::less 0:4 0:X 1:0 8:0 -DEAL::less 0:5 0:X 1:0 8:1 -DEAL::not 0:0 0:X 1:0 8:2 -DEAL::not 0:0 0:X 1:0 8:3 -DEAL::not 0:0 0:X 1:0 8:4 -DEAL::less 0:3 0:4 1:1 8:0 -DEAL::less 0:4 0:4 1:1 8:1 -DEAL::less 0:5 0:4 1:1 8:2 -DEAL::less 0:0 0:4 1:1 8:3 -DEAL::less 0:3 0:3 1:1 8:4 -DEAL::less 0:4 0:3 1:1 8:5 -DEAL::less 0:5 0:3 1:1 8:6 -DEAL::less 0:0 0:3 1:1 8:7 -DEAL::not 0:0 0:0 1:1 8:8 -DEAL::less 0:0 0:0 1:1 8:9 -DEAL::less 0:0 0:0 1:1 8:10 -DEAL::less 0:0 0:0 1:1 8:11 -DEAL::less 0:0 0:0 1:1 8:12 -DEAL::less 0:0 0:0 1:1 8:13 -DEAL::less 0:0 0:0 1:1 8:14 -DEAL::less 0:0 0:0 1:1 8:15 -DEAL::less 0:0 0:0 1:1 8:16 -DEAL::less 0:0 0:0 1:1 8:17 -DEAL::less 0:0 0:0 1:1 8:18 -DEAL::less 0:0 0:0 1:1 8:19 -DEAL::less 0:4 0:X 1:0 9:0 -DEAL::less 0:5 0:X 1:0 9:1 -DEAL::not 0:0 0:X 1:0 9:2 -DEAL::not 0:0 0:X 1:0 9:3 -DEAL::not 0:0 0:X 1:0 9:4 -DEAL::less 0:3 0:4 1:1 9:0 -DEAL::less 0:4 0:4 1:1 9:1 -DEAL::less 0:5 0:4 1:1 9:2 -DEAL::less 0:0 0:4 1:1 9:3 -DEAL::less 0:3 0:3 1:1 9:4 -DEAL::less 0:4 0:3 1:1 9:5 -DEAL::less 0:5 0:3 1:1 9:6 -DEAL::less 0:0 0:3 1:1 9:7 -DEAL::not 0:0 0:0 1:1 9:8 -DEAL::not 0:0 0:0 1:1 9:9 -DEAL::less 0:0 0:0 1:1 9:10 -DEAL::less 0:0 0:0 1:1 9:11 -DEAL::less 0:0 0:0 1:1 9:12 -DEAL::less 0:0 0:0 1:1 9:13 -DEAL::less 0:0 0:0 1:1 9:14 -DEAL::less 0:0 0:0 1:1 9:15 -DEAL::less 0:0 0:0 1:1 9:16 -DEAL::less 0:0 0:0 1:1 9:17 -DEAL::less 0:0 0:0 1:1 9:18 -DEAL::less 0:0 0:0 1:1 9:19 -DEAL::less 0:4 0:X 1:0 10:0 -DEAL::less 0:5 0:X 1:0 10:1 -DEAL::not 0:0 0:X 1:0 10:2 -DEAL::not 0:0 0:X 1:0 10:3 -DEAL::not 0:0 0:X 1:0 10:4 -DEAL::less 0:3 0:4 1:1 10:0 -DEAL::less 0:4 0:4 1:1 10:1 -DEAL::less 0:5 0:4 1:1 10:2 -DEAL::less 0:0 0:4 1:1 10:3 -DEAL::less 0:3 0:3 1:1 10:4 -DEAL::less 0:4 0:3 1:1 10:5 -DEAL::less 0:5 0:3 1:1 10:6 -DEAL::less 0:0 0:3 1:1 10:7 -DEAL::not 0:0 0:0 1:1 10:8 -DEAL::not 0:0 0:0 1:1 10:9 -DEAL::not 0:0 0:0 1:1 10:10 -DEAL::less 0:0 0:0 1:1 10:11 -DEAL::less 0:0 0:0 1:1 10:12 -DEAL::less 0:0 0:0 1:1 10:13 -DEAL::less 0:0 0:0 1:1 10:14 -DEAL::less 0:0 0:0 1:1 10:15 -DEAL::less 0:0 0:0 1:1 10:16 -DEAL::less 0:0 0:0 1:1 10:17 -DEAL::less 0:0 0:0 1:1 10:18 -DEAL::less 0:0 0:0 1:1 10:19 -DEAL::less 0:4 0:X 1:0 11:0 -DEAL::less 0:5 0:X 1:0 11:1 -DEAL::not 0:0 0:X 1:0 11:2 -DEAL::not 0:0 0:X 1:0 11:3 -DEAL::not 0:0 0:X 1:0 11:4 -DEAL::less 0:3 0:4 1:1 11:0 -DEAL::less 0:4 0:4 1:1 11:1 -DEAL::less 0:5 0:4 1:1 11:2 -DEAL::less 0:0 0:4 1:1 11:3 -DEAL::less 0:3 0:3 1:1 11:4 -DEAL::less 0:4 0:3 1:1 11:5 -DEAL::less 0:5 0:3 1:1 11:6 -DEAL::less 0:0 0:3 1:1 11:7 -DEAL::not 0:0 0:0 1:1 11:8 -DEAL::not 0:0 0:0 1:1 11:9 -DEAL::not 0:0 0:0 1:1 11:10 -DEAL::not 0:0 0:0 1:1 11:11 -DEAL::less 0:0 0:0 1:1 11:12 -DEAL::less 0:0 0:0 1:1 11:13 -DEAL::less 0:0 0:0 1:1 11:14 -DEAL::less 0:0 0:0 1:1 11:15 -DEAL::less 0:0 0:0 1:1 11:16 -DEAL::less 0:0 0:0 1:1 11:17 -DEAL::less 0:0 0:0 1:1 11:18 -DEAL::less 0:0 0:0 1:1 11:19 -DEAL::less 0:4 0:X 1:0 12:0 -DEAL::less 0:5 0:X 1:0 12:1 -DEAL::not 0:0 0:X 1:0 12:2 -DEAL::not 0:0 0:X 1:0 12:3 -DEAL::not 0:0 0:X 1:0 12:4 -DEAL::less 0:3 0:4 1:1 12:0 -DEAL::less 0:4 0:4 1:1 12:1 -DEAL::less 0:5 0:4 1:1 12:2 -DEAL::less 0:0 0:4 1:1 12:3 -DEAL::less 0:3 0:3 1:1 12:4 -DEAL::less 0:4 0:3 1:1 12:5 -DEAL::less 0:5 0:3 1:1 12:6 -DEAL::less 0:0 0:3 1:1 12:7 -DEAL::not 0:0 0:0 1:1 12:8 -DEAL::not 0:0 0:0 1:1 12:9 -DEAL::not 0:0 0:0 1:1 12:10 -DEAL::not 0:0 0:0 1:1 12:11 -DEAL::not 0:0 0:0 1:1 12:12 -DEAL::less 0:0 0:0 1:1 12:13 -DEAL::less 0:0 0:0 1:1 12:14 -DEAL::less 0:0 0:0 1:1 12:15 -DEAL::less 0:0 0:0 1:1 12:16 -DEAL::less 0:0 0:0 1:1 12:17 -DEAL::less 0:0 0:0 1:1 12:18 -DEAL::less 0:0 0:0 1:1 12:19 -DEAL::less 0:4 0:X 1:0 13:0 -DEAL::less 0:5 0:X 1:0 13:1 -DEAL::not 0:0 0:X 1:0 13:2 -DEAL::not 0:0 0:X 1:0 13:3 -DEAL::not 0:0 0:X 1:0 13:4 -DEAL::less 0:3 0:4 1:1 13:0 -DEAL::less 0:4 0:4 1:1 13:1 -DEAL::less 0:5 0:4 1:1 13:2 -DEAL::less 0:0 0:4 1:1 13:3 -DEAL::less 0:3 0:3 1:1 13:4 -DEAL::less 0:4 0:3 1:1 13:5 -DEAL::less 0:5 0:3 1:1 13:6 -DEAL::less 0:0 0:3 1:1 13:7 -DEAL::not 0:0 0:0 1:1 13:8 -DEAL::not 0:0 0:0 1:1 13:9 -DEAL::not 0:0 0:0 1:1 13:10 -DEAL::not 0:0 0:0 1:1 13:11 -DEAL::not 0:0 0:0 1:1 13:12 -DEAL::not 0:0 0:0 1:1 13:13 -DEAL::less 0:0 0:0 1:1 13:14 -DEAL::less 0:0 0:0 1:1 13:15 -DEAL::less 0:0 0:0 1:1 13:16 -DEAL::less 0:0 0:0 1:1 13:17 -DEAL::less 0:0 0:0 1:1 13:18 -DEAL::less 0:0 0:0 1:1 13:19 -DEAL::less 0:4 0:X 1:0 14:0 -DEAL::less 0:5 0:X 1:0 14:1 -DEAL::not 0:0 0:X 1:0 14:2 -DEAL::not 0:0 0:X 1:0 14:3 -DEAL::not 0:0 0:X 1:0 14:4 -DEAL::less 0:3 0:4 1:1 14:0 -DEAL::less 0:4 0:4 1:1 14:1 -DEAL::less 0:5 0:4 1:1 14:2 -DEAL::less 0:0 0:4 1:1 14:3 -DEAL::less 0:3 0:3 1:1 14:4 -DEAL::less 0:4 0:3 1:1 14:5 -DEAL::less 0:5 0:3 1:1 14:6 -DEAL::less 0:0 0:3 1:1 14:7 -DEAL::not 0:0 0:0 1:1 14:8 -DEAL::not 0:0 0:0 1:1 14:9 -DEAL::not 0:0 0:0 1:1 14:10 -DEAL::not 0:0 0:0 1:1 14:11 -DEAL::not 0:0 0:0 1:1 14:12 -DEAL::not 0:0 0:0 1:1 14:13 -DEAL::not 0:0 0:0 1:1 14:14 -DEAL::less 0:0 0:0 1:1 14:15 -DEAL::less 0:0 0:0 1:1 14:16 -DEAL::less 0:0 0:0 1:1 14:17 -DEAL::less 0:0 0:0 1:1 14:18 -DEAL::less 0:0 0:0 1:1 14:19 -DEAL::less 0:4 0:X 1:0 15:0 -DEAL::less 0:5 0:X 1:0 15:1 -DEAL::not 0:0 0:X 1:0 15:2 -DEAL::not 0:0 0:X 1:0 15:3 -DEAL::not 0:0 0:X 1:0 15:4 -DEAL::less 0:3 0:4 1:1 15:0 -DEAL::less 0:4 0:4 1:1 15:1 -DEAL::less 0:5 0:4 1:1 15:2 -DEAL::less 0:0 0:4 1:1 15:3 -DEAL::less 0:3 0:3 1:1 15:4 -DEAL::less 0:4 0:3 1:1 15:5 -DEAL::less 0:5 0:3 1:1 15:6 -DEAL::less 0:0 0:3 1:1 15:7 -DEAL::not 0:0 0:0 1:1 15:8 -DEAL::not 0:0 0:0 1:1 15:9 -DEAL::not 0:0 0:0 1:1 15:10 -DEAL::not 0:0 0:0 1:1 15:11 -DEAL::not 0:0 0:0 1:1 15:12 -DEAL::not 0:0 0:0 1:1 15:13 -DEAL::not 0:0 0:0 1:1 15:14 -DEAL::not 0:0 0:0 1:1 15:15 -DEAL::less 0:0 0:0 1:1 15:16 -DEAL::less 0:0 0:0 1:1 15:17 -DEAL::less 0:0 0:0 1:1 15:18 -DEAL::less 0:0 0:0 1:1 15:19 -DEAL::less 0:4 0:X 1:0 16:0 -DEAL::less 0:5 0:X 1:0 16:1 -DEAL::not 0:0 0:X 1:0 16:2 -DEAL::not 0:0 0:X 1:0 16:3 -DEAL::not 0:0 0:X 1:0 16:4 -DEAL::less 0:3 0:4 1:1 16:0 -DEAL::less 0:4 0:4 1:1 16:1 -DEAL::less 0:5 0:4 1:1 16:2 -DEAL::less 0:0 0:4 1:1 16:3 -DEAL::less 0:3 0:3 1:1 16:4 -DEAL::less 0:4 0:3 1:1 16:5 -DEAL::less 0:5 0:3 1:1 16:6 -DEAL::less 0:0 0:3 1:1 16:7 -DEAL::not 0:0 0:0 1:1 16:8 -DEAL::not 0:0 0:0 1:1 16:9 -DEAL::not 0:0 0:0 1:1 16:10 -DEAL::not 0:0 0:0 1:1 16:11 -DEAL::not 0:0 0:0 1:1 16:12 -DEAL::not 0:0 0:0 1:1 16:13 -DEAL::not 0:0 0:0 1:1 16:14 -DEAL::not 0:0 0:0 1:1 16:15 -DEAL::not 0:0 0:0 1:1 16:16 -DEAL::less 0:0 0:0 1:1 16:17 -DEAL::less 0:0 0:0 1:1 16:18 -DEAL::less 0:0 0:0 1:1 16:19 -DEAL::less 0:4 0:X 1:0 17:0 -DEAL::less 0:5 0:X 1:0 17:1 -DEAL::not 0:0 0:X 1:0 17:2 -DEAL::not 0:0 0:X 1:0 17:3 -DEAL::not 0:0 0:X 1:0 17:4 -DEAL::less 0:3 0:4 1:1 17:0 -DEAL::less 0:4 0:4 1:1 17:1 -DEAL::less 0:5 0:4 1:1 17:2 -DEAL::less 0:0 0:4 1:1 17:3 -DEAL::less 0:3 0:3 1:1 17:4 -DEAL::less 0:4 0:3 1:1 17:5 -DEAL::less 0:5 0:3 1:1 17:6 -DEAL::less 0:0 0:3 1:1 17:7 -DEAL::not 0:0 0:0 1:1 17:8 -DEAL::not 0:0 0:0 1:1 17:9 -DEAL::not 0:0 0:0 1:1 17:10 -DEAL::not 0:0 0:0 1:1 17:11 -DEAL::not 0:0 0:0 1:1 17:12 -DEAL::not 0:0 0:0 1:1 17:13 -DEAL::not 0:0 0:0 1:1 17:14 -DEAL::not 0:0 0:0 1:1 17:15 -DEAL::not 0:0 0:0 1:1 17:16 -DEAL::not 0:0 0:0 1:1 17:17 -DEAL::less 0:0 0:0 1:1 17:18 -DEAL::less 0:0 0:0 1:1 17:19 -DEAL::less 0:4 0:X 1:0 18:0 -DEAL::less 0:5 0:X 1:0 18:1 -DEAL::not 0:0 0:X 1:0 18:2 -DEAL::not 0:0 0:X 1:0 18:3 -DEAL::not 0:0 0:X 1:0 18:4 -DEAL::less 0:3 0:4 1:1 18:0 -DEAL::less 0:4 0:4 1:1 18:1 -DEAL::less 0:5 0:4 1:1 18:2 -DEAL::less 0:0 0:4 1:1 18:3 -DEAL::less 0:3 0:3 1:1 18:4 -DEAL::less 0:4 0:3 1:1 18:5 -DEAL::less 0:5 0:3 1:1 18:6 -DEAL::less 0:0 0:3 1:1 18:7 -DEAL::not 0:0 0:0 1:1 18:8 -DEAL::not 0:0 0:0 1:1 18:9 -DEAL::not 0:0 0:0 1:1 18:10 -DEAL::not 0:0 0:0 1:1 18:11 -DEAL::not 0:0 0:0 1:1 18:12 -DEAL::not 0:0 0:0 1:1 18:13 -DEAL::not 0:0 0:0 1:1 18:14 -DEAL::not 0:0 0:0 1:1 18:15 -DEAL::not 0:0 0:0 1:1 18:16 -DEAL::not 0:0 0:0 1:1 18:17 -DEAL::not 0:0 0:0 1:1 18:18 -DEAL::less 0:0 0:0 1:1 18:19 -DEAL::less 0:4 0:X 1:0 19:0 -DEAL::less 0:5 0:X 1:0 19:1 -DEAL::not 0:0 0:X 1:0 19:2 -DEAL::not 0:0 0:X 1:0 19:3 -DEAL::not 0:0 0:X 1:0 19:4 -DEAL::less 0:3 0:4 1:1 19:0 -DEAL::less 0:4 0:4 1:1 19:1 -DEAL::less 0:5 0:4 1:1 19:2 -DEAL::less 0:0 0:4 1:1 19:3 -DEAL::less 0:3 0:3 1:1 19:4 -DEAL::less 0:4 0:3 1:1 19:5 -DEAL::less 0:5 0:3 1:1 19:6 -DEAL::less 0:0 0:3 1:1 19:7 -DEAL::not 0:0 0:0 1:1 19:8 -DEAL::not 0:0 0:0 1:1 19:9 -DEAL::not 0:0 0:0 1:1 19:10 -DEAL::not 0:0 0:0 1:1 19:11 -DEAL::not 0:0 0:0 1:1 19:12 -DEAL::not 0:0 0:0 1:1 19:13 -DEAL::not 0:0 0:0 1:1 19:14 -DEAL::not 0:0 0:0 1:1 19:15 -DEAL::not 0:0 0:0 1:1 19:16 -DEAL::not 0:0 0:0 1:1 19:17 -DEAL::not 0:0 0:0 1:1 19:18 -DEAL::not 0:0 0:0 1:1 19:19 diff --git a/tests/lac/pointer_matrix_01.cc b/tests/lac/pointer_matrix_01.cc new file mode 100644 index 0000000000..dc4a1bb6b2 --- /dev/null +++ b/tests/lac/pointer_matrix_01.cc @@ -0,0 +1,46 @@ +// --------------------------------------------------------------------- +// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $ +// +// Copyright (C) 2006 - 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. +// +// --------------------------------------------------------------------- + +// check PointerMatrix:checkConstructor1 + +#include "../tests.h" +#include +#include +#include +#include + +template + void + checkConstructor1() + { + deallog << "Init with empty matrix" << std::endl; + PointerMatrix, Vector > P; + deallog << "Is matrix empty:" << P.empty() << std::endl; + } + +int +main() +{ + + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(4); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + checkConstructor1(); +} diff --git a/tests/lac/pointer_matrix_01.output b/tests/lac/pointer_matrix_01.output new file mode 100644 index 0000000000..29ff7b71c0 --- /dev/null +++ b/tests/lac/pointer_matrix_01.output @@ -0,0 +1,3 @@ + +DEAL::Init with empty matrix +DEAL::Is matrix empty:1 diff --git a/tests/lac/pointer_matrix_02.cc b/tests/lac/pointer_matrix_02.cc new file mode 100644 index 0000000000..2fd9975f9c --- /dev/null +++ b/tests/lac/pointer_matrix_02.cc @@ -0,0 +1,52 @@ +// --------------------------------------------------------------------- +// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $ +// +// Copyright (C) 2006 - 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. +// +// --------------------------------------------------------------------- + +// check PointerMatrix:checkConstructor2 + +#include "../tests.h" +#include +#include +#include +#include + +template + void + checkConstructor2(FullMatrix &A) + { + deallog << "Init with matrix A" << std::endl; + PointerMatrix, Vector > P(&A); + deallog << "Is matrix empty:" << P.empty() << std::endl; + } + +int +main() +{ + + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(4); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + const double Adata[] = + { 2, 3, 4, 5 }; + + FullMatrix A(2, 2); + A.fill(Adata); + + checkConstructor2(A); +} diff --git a/tests/lac/pointer_matrix_02.output b/tests/lac/pointer_matrix_02.output new file mode 100644 index 0000000000..4b02719a99 --- /dev/null +++ b/tests/lac/pointer_matrix_02.output @@ -0,0 +1,3 @@ + +DEAL::Init with matrix A +DEAL::Is matrix empty:0 diff --git a/tests/lac/pointer_matrix_03.cc b/tests/lac/pointer_matrix_03.cc new file mode 100644 index 0000000000..0d66472ac6 --- /dev/null +++ b/tests/lac/pointer_matrix_03.cc @@ -0,0 +1,49 @@ +// --------------------------------------------------------------------- +// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $ +// +// Copyright (C) 2006 - 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. +// +// --------------------------------------------------------------------- + +// check PointerMatrix:checkConstructor3 + +#include "../tests.h" +#include +#include +#include +#include + +template + void + checkConstructor3(char *name) + { + deallog << "Init with matrix name" << std::endl; + PointerMatrix, Vector > P(name); + deallog << "Is matrix empty:" << P.empty() << std::endl; + } + +int +main() +{ + + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(4); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + char *name = "Matrix A"; + + checkConstructor3(name); + +} diff --git a/tests/lac/pointer_matrix_03.output b/tests/lac/pointer_matrix_03.output new file mode 100644 index 0000000000..b90ebcb206 --- /dev/null +++ b/tests/lac/pointer_matrix_03.output @@ -0,0 +1,3 @@ + +DEAL::Init with matrix name +DEAL::Is matrix empty:1 diff --git a/tests/lac/pointer_matrix_04.cc b/tests/lac/pointer_matrix_04.cc new file mode 100644 index 0000000000..2e8a5aff75 --- /dev/null +++ b/tests/lac/pointer_matrix_04.cc @@ -0,0 +1,54 @@ +// --------------------------------------------------------------------- +// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $ +// +// Copyright (C) 2006 - 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. +// +// --------------------------------------------------------------------- + +// check PointerMatrix:checkConstructor4 + +#include "../tests.h" +#include +#include +#include +#include + +template + void + checkConstructor4(const FullMatrix &A, char *name) + { + deallog << "Init with matrix name and matrix" << std::endl; + PointerMatrix, Vector > P(&A, name); + deallog << "Is matrix empty:" << P.empty() << std::endl; + } + +int +main() +{ + + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(4); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + const double Adata[] = + { 2, 3, 4, 5 }; + + FullMatrix A(2, 2); + A.fill(Adata); + + char *name = "Matrix A"; + + checkConstructor4(A, name); +} diff --git a/tests/lac/pointer_matrix_04.output b/tests/lac/pointer_matrix_04.output new file mode 100644 index 0000000000..eebc2cc092 --- /dev/null +++ b/tests/lac/pointer_matrix_04.output @@ -0,0 +1,3 @@ + +DEAL::Init with matrix name and matrix +DEAL::Is matrix empty:0 diff --git a/tests/lac/pointer_matrix_05.cc b/tests/lac/pointer_matrix_05.cc new file mode 100644 index 0000000000..32f667e444 --- /dev/null +++ b/tests/lac/pointer_matrix_05.cc @@ -0,0 +1,74 @@ +// --------------------------------------------------------------------- +// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $ +// +// Copyright (C) 2006 - 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. +// +// --------------------------------------------------------------------- + +// check PointerMatrix:checkVmult + +#include "../tests.h" +#include +#include +#include +#include + +template + void + checkVmult(FullMatrix &A, Vector &V, char *name = + "Test Matrix") + { + deallog << "vmult" << std::endl; + + PointerMatrix, Vector > P(&A, name); + Vector O(A.m()); + P.vmult(O, V); + + // Check the dimensions of the result matrix + Assert(A.m() == O.size(), ExcInternalError()); + deallog << "Dimensions of result vector verified" << std::endl; + + // Verifying results with Method 2: O=A*V + Vector O_(A.m()); + A.vmult(O_, V); + + Assert(O == O_, ExcInternalError()); + deallog << "Result vector data verified" << std::endl; + + for (unsigned int i = 0; i < O.size(); ++i) + deallog << O(i) << '\t'; + deallog << std::endl; + } + +int +main() +{ + + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(4); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + const double Adata[] = + { 2, 3, 4, 5 }; + + FullMatrix A(2, 2); + A.fill(Adata); + + Vector V(2); + V(0) = 1; + V(1) = 2; + + checkVmult(A, V); +} diff --git a/tests/lac/pointer_matrix_05.output b/tests/lac/pointer_matrix_05.output new file mode 100644 index 0000000000..a867192b6d --- /dev/null +++ b/tests/lac/pointer_matrix_05.output @@ -0,0 +1,5 @@ + +DEAL::vmult +DEAL::Dimensions of result vector verified +DEAL::Result vector data verified +DEAL::8.0000 14.0000 diff --git a/tests/lac/pointer_matrix_06.cc b/tests/lac/pointer_matrix_06.cc new file mode 100644 index 0000000000..af35fd9e60 --- /dev/null +++ b/tests/lac/pointer_matrix_06.cc @@ -0,0 +1,74 @@ +// --------------------------------------------------------------------- +// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $ +// +// Copyright (C) 2006 - 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. +// +// --------------------------------------------------------------------- + +// check PointerMatrix:checkTvmult + +#include "../tests.h" +#include +#include +#include +#include + +template + void + checkTvmult(FullMatrix &A, Vector &V, char *name = + "Test Matrix") + { + deallog << "Tvmult" << std::endl; + + PointerMatrix, Vector > P(&A, name); + Vector O(A.m()); + P.Tvmult(O, V); + + // Check the dimensions of the result matrix + Assert(A.m() == O.size(), ExcInternalError()); + deallog << "Dimensions of result vector verified" << std::endl; + + // Verifying results with Method 2: O=A Transpose*V + Vector O_(A.m()); + A.Tvmult(O_, V); + + Assert(O == O_, ExcInternalError()); + deallog << "Result vector data verified" << std::endl; + + for (unsigned int i = 0; i < O.size(); ++i) + deallog << O(i) << '\t'; + deallog << std::endl; + } + +int +main() +{ + + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(4); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + const double Adata[] = + { 2, 3, 4, 5 }; + + FullMatrix A(2, 2); + A.fill(Adata); + + Vector V(2); + V(0) = 1; + V(1) = 2; + + checkTvmult(A, V); +} diff --git a/tests/lac/pointer_matrix_06.output b/tests/lac/pointer_matrix_06.output new file mode 100644 index 0000000000..510a561c65 --- /dev/null +++ b/tests/lac/pointer_matrix_06.output @@ -0,0 +1,5 @@ + +DEAL::Tvmult +DEAL::Dimensions of result vector verified +DEAL::Result vector data verified +DEAL::10.0000 13.0000 diff --git a/tests/lac/pointer_matrix_07.cc b/tests/lac/pointer_matrix_07.cc new file mode 100644 index 0000000000..98d8174e43 --- /dev/null +++ b/tests/lac/pointer_matrix_07.cc @@ -0,0 +1,83 @@ +// --------------------------------------------------------------------- +// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $ +// +// Copyright (C) 2006 - 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. +// +// --------------------------------------------------------------------- + +// check PointerMatrix:checkTvmult_add + +#include "../tests.h" +#include +#include +#include +#include + +template + void + checkTvmult_add(FullMatrix &A, Vector &V, char *name = + "Test Matrix") + { + deallog << "Tvmult_add" << std::endl; + + PointerMatrix, Vector > P(&A, name); + + deallog << "Result vector set to all ones and to be added with result" + << std::endl; + Vector O(V.size()); + for (unsigned int i = 0; i < O.size(); ++i) + O(i) = 1; + + P.Tvmult_add(O, V); + + // Check the dimensions of the result matrix + Assert(A.m() == O.size(), ExcInternalError()); + deallog << "Dimensions of result vector verified" << std::endl; + + // Verifying results with Method 2: O=O+A Transpose*V + Vector O_(V.size()); + for (unsigned int i = 0; i < O_.size(); ++i) + O_(i) = 1; + + A.Tvmult_add(O_, V); + + Assert(O == O_, ExcInternalError()); + deallog << "Result vector data verified" << std::endl; + + for (unsigned int i = 0; i < O.size(); ++i) + deallog << O(i) << '\t'; + deallog << std::endl; + } + +int +main() +{ + + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(4); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + const double Adata[] = + { 2, 3, 4, 5 }; + + FullMatrix A(2, 2); + A.fill(Adata); + + Vector V(2); + V(0) = 1; + V(1) = 2; + + checkTvmult_add(A, V); +} diff --git a/tests/lac/pointer_matrix_07.output b/tests/lac/pointer_matrix_07.output new file mode 100644 index 0000000000..71e06a0437 --- /dev/null +++ b/tests/lac/pointer_matrix_07.output @@ -0,0 +1,6 @@ + +DEAL::Tvmult_add +DEAL::Result vector set to all ones and to be added with result +DEAL::Dimensions of result vector verified +DEAL::Result vector data verified +DEAL::11.0000 14.0000 diff --git a/tests/lac/pointer_matrix_08.cc b/tests/lac/pointer_matrix_08.cc new file mode 100644 index 0000000000..ad3d1b18f8 --- /dev/null +++ b/tests/lac/pointer_matrix_08.cc @@ -0,0 +1,83 @@ +// --------------------------------------------------------------------- +// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $ +// +// Copyright (C) 2006 - 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. +// +// --------------------------------------------------------------------- + +// check PointerMatrix:checkVmult_add + +#include "../tests.h" +#include +#include +#include +#include + +template + void + checkVmult_add(FullMatrix &A, Vector &V, char *name = + "Test Matrix") + { + deallog << "vmult_add" << std::endl; + + PointerMatrix, Vector > P(&A, name); + + deallog << "Result vector set to all ones and to be added with result" + << std::endl; + Vector O(V.size()); + for (unsigned int i = 0; i < O.size(); ++i) + O(i) = 1; + + P.vmult_add(O, V); + + // Check the dimensions of the result matrix + Assert(A.m() == O.size(), ExcInternalError()); + deallog << "Dimensions of result vector verified" << std::endl; + + // Verifying results with Method 2: O=O+A*V + Vector O_(V.size()); + for (unsigned int i = 0; i < O_.size(); ++i) + O_(i) = 1; + + A.vmult_add(O_, V); + + Assert(O == O_, ExcInternalError()); + deallog << "Result vector data verified" << std::endl; + + for (unsigned int i = 0; i < O.size(); ++i) + deallog << O(i) << '\t'; + deallog << std::endl; + } + +int +main() +{ + + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(4); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + const double Adata[] = + { 2, 3, 4, 5 }; + + FullMatrix A(2, 2); + A.fill(Adata); + + Vector V(2); + V(0) = 1; + V(1) = 2; + + checkVmult_add(A, V); +} diff --git a/tests/lac/pointer_matrix_08.output b/tests/lac/pointer_matrix_08.output new file mode 100644 index 0000000000..654ff7f6ad --- /dev/null +++ b/tests/lac/pointer_matrix_08.output @@ -0,0 +1,6 @@ + +DEAL::vmult_add +DEAL::Result vector set to all ones and to be added with result +DEAL::Dimensions of result vector verified +DEAL::Result vector data verified +DEAL::9.0000 15.0000 diff --git a/tests/lac/pointer_matrix_09.cc b/tests/lac/pointer_matrix_09.cc new file mode 100644 index 0000000000..5a27c2586f --- /dev/null +++ b/tests/lac/pointer_matrix_09.cc @@ -0,0 +1,81 @@ +// --------------------------------------------------------------------- +// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $ +// +// Copyright (C) 2006 - 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. +// +// --------------------------------------------------------------------- + +// check PointerMatrix:checkClear + +#include "../tests.h" +#include +#include +#include +#include + +template + void + checkClear(FullMatrix &A) + { + deallog << "clear" << std::endl; + deallog << "Init with matrix 1" << std::endl; + + PointerMatrix, Vector > P(&A); + + deallog << "Multiplying with all ones vector" << std::endl; + Vector V(A.n()); + for (unsigned int i = 0; i < V.size(); ++i) + V(i) = 1; + + Vector O(A.m()); + P.vmult(O, V); + + // Check the dimensions of the result vector + Assert(A.m() == O.size(), ExcInternalError()); + deallog << "Dimensions of result vector verified" << std::endl; + + // Verifying results with Method 2: O=A*V + Vector O_(A.m()); + A.vmult(O_, V); + + Assert(O == O_, ExcInternalError()); + deallog << "Result vector data verified" << std::endl; + + for (unsigned int i = 0; i < O.size(); ++i) + deallog << O(i) << '\t'; + deallog << std::endl; + + deallog << "Clearing pointer matrix" << std::endl; + P.clear(); + + deallog << "Is matrix empty:" << P.empty() << std::endl; + } + +int +main() +{ + + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(4); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + const double Adata[] = + { 2, 3, 4, 5 }; + + FullMatrix A(2, 2); + A.fill(Adata); + + checkClear(A); +} diff --git a/tests/lac/pointer_matrix_09.output b/tests/lac/pointer_matrix_09.output new file mode 100644 index 0000000000..0455e79cb6 --- /dev/null +++ b/tests/lac/pointer_matrix_09.output @@ -0,0 +1,9 @@ + +DEAL::clear +DEAL::Init with matrix 1 +DEAL::Multiplying with all ones vector +DEAL::Dimensions of result vector verified +DEAL::Result vector data verified +DEAL::5.0000 9.0000 +DEAL::Clearing pointer matrix +DEAL::Is matrix empty:1 diff --git a/tests/lac/pointer_matrix_10.cc b/tests/lac/pointer_matrix_10.cc new file mode 100644 index 0000000000..b4489cd30e --- /dev/null +++ b/tests/lac/pointer_matrix_10.cc @@ -0,0 +1,113 @@ +// --------------------------------------------------------------------- +// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $ +// +// Copyright (C) 2006 - 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. +// +// --------------------------------------------------------------------- + +// check PointerMatrix:checkAssign + +#include "../tests.h" +#include +#include +#include +#include + +template + void + checkAssign(FullMatrix &A, FullMatrix &B) + { + deallog << "=" << std::endl; + deallog << "Init with matrix 1" << std::endl; + + PointerMatrix, Vector > P(&A); + + deallog << "Multiplying with all ones vector" << std::endl; + Vector V(A.n()); + for (unsigned int i = 0; i < V.size(); ++i) + V(i) = 1; + + Vector O(A.m()); + P.vmult(O, V); + + // Check the dimensions of the result vector + Assert(A.m() == O.size(), ExcInternalError()); + deallog << "Dimensions of result vector verified" << std::endl; + + // Verifying results with Method 2: O=A*V + Vector O_(A.m()); + A.vmult(O_, V); + + Assert(O == O_, ExcInternalError()); + deallog << "Result vector data verified" << std::endl; + + for (unsigned int i = 0; i < O.size(); ++i) + deallog << O(i) << '\t'; + deallog << std::endl; + + deallog << "Clearing pointer matrix" << std::endl; + P.clear(); + + deallog << "Is matrix empty:" << P.empty() << std::endl; + + deallog << "Assigning pointer matrix to matrix 2" << std::endl; + + P = &B; + + deallog << "Multiplying with all ones vector" << std::endl; + Vector V_(B.n()); + for (unsigned int i = 0; i < V_.size(); ++i) + V_(i) = 1; + + Vector OU(B.m()); + P.vmult(OU, V_); + + // Check the dimensions of the result vector + Assert(B.m() == OU.size(), ExcInternalError()); + deallog << "Dimensions of result vector verified" << std::endl; + + // Verifying results with Method 2: O=B*V + Vector OU_(B.m()); + B.vmult(OU_, V_); + + Assert(OU == OU_, ExcInternalError()); + deallog << "Result vector data verified" << std::endl; + + for (unsigned int i = 0; i < OU.size(); ++i) + deallog << OU(i) << '\t'; + deallog << std::endl; + } + +int +main() +{ + + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(4); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + const double Adata[] = + { 2, 3, 4, 5 }; + + const double Bdata[] = + { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + + FullMatrix A(2, 2); + A.fill(Adata); + FullMatrix B(3, 3); + B.fill(Bdata); + + checkAssign(A, B); +} diff --git a/tests/lac/pointer_matrix_10.output b/tests/lac/pointer_matrix_10.output new file mode 100644 index 0000000000..6b39ca39a4 --- /dev/null +++ b/tests/lac/pointer_matrix_10.output @@ -0,0 +1,14 @@ + +DEAL::= +DEAL::Init with matrix 1 +DEAL::Multiplying with all ones vector +DEAL::Dimensions of result vector verified +DEAL::Result vector data verified +DEAL::5.0000 9.0000 +DEAL::Clearing pointer matrix +DEAL::Is matrix empty:1 +DEAL::Assigning pointer matrix to matrix 2 +DEAL::Multiplying with all ones vector +DEAL::Dimensions of result vector verified +DEAL::Result vector data verified +DEAL::6.0000 15.0000 24.0000 diff --git a/tests/lac/shifted_matrix_01.cc b/tests/lac/shifted_matrix_01.cc new file mode 100644 index 0000000000..2d414c4148 --- /dev/null +++ b/tests/lac/shifted_matrix_01.cc @@ -0,0 +1,73 @@ +// --------------------------------------------------------------------- +// $Id: shifted_matrix.cc 32491 2014-03-13 dilangov $ +// +// Copyright (C) 2014 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. +// +// --------------------------------------------------------------------- + +// check ShiftedMatrix::checkConstructor + +#include "../tests.h" +#include +#include +#include +#include + +#include +#include +#include + +template + void + checkConstructor(FullMatrix &A, double sigma) + { + deallog << "constructor" << std::endl; + + ShiftedMatrix < FullMatrix > S(A, sigma); + + deallog << "Multiplying with all ones vector" << std::endl; + Vector V(A.n()); + for (unsigned int i = 0; i < V.size(); ++i) + V(i) = 1; + + Vector O(A.m()); + + S.vmult(O, V); + + // Check the dimensions of the result matrix + Assert(A.m() == O.size(), ExcInternalError()); + deallog << "Dimensions of result vector verified" << std::endl; + + for (unsigned int i = 0; i < O.size(); ++i) + deallog << O(i) << '\t'; + deallog << std::endl; + } + +int +main() +{ + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(4); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + const double Adata[] = + { 2, 3, 4, 5 }; + + FullMatrix A(2, 2); + + A.fill(Adata); + + checkConstructor(A, 2); +} diff --git a/tests/lac/shifted_matrix_01.output b/tests/lac/shifted_matrix_01.output new file mode 100644 index 0000000000..b90077284d --- /dev/null +++ b/tests/lac/shifted_matrix_01.output @@ -0,0 +1,5 @@ + +DEAL::constructor +DEAL::Multiplying with all ones vector +DEAL::Dimensions of result vector verified +DEAL::7.0000 11.0000 diff --git a/tests/lac/shifted_matrix_02.cc b/tests/lac/shifted_matrix_02.cc new file mode 100644 index 0000000000..1d7c2965ef --- /dev/null +++ b/tests/lac/shifted_matrix_02.cc @@ -0,0 +1,71 @@ +// --------------------------------------------------------------------- +// $Id: shifted_matrix.cc 32491 2014-03-13 dilangov $ +// +// Copyright (C) 2014 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. +// +// --------------------------------------------------------------------- + +// check ShiftedMatrix::checkVmult + +#include "../tests.h" +#include +#include +#include +#include + +#include +#include +#include + +template + void + checkVmult(FullMatrix &A, double sigma, Vector &V) + { + deallog << "vmult" << std::endl; + + ShiftedMatrix < FullMatrix > S(A, sigma); + Vector O(A.m()); + + S.vmult(O, V); + + // Check the dimensions of the result matrix + Assert(A.m() == O.size(), ExcInternalError()); + deallog << "Dimensions of result vector verified" << std::endl; + + for (unsigned int i = 0; i < O.size(); ++i) + deallog << O(i) << '\t'; + deallog << std::endl; + } + +int +main() +{ + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(4); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + const double Adata[] = + { 2, 3, 4, 5 }; + + FullMatrix A(2, 2); + + A.fill(Adata); + + Vector V(2); + V(0) = 1; + V(1) = 2; + + checkVmult(A, 2, V); +} diff --git a/tests/lac/shifted_matrix_02.output b/tests/lac/shifted_matrix_02.output new file mode 100644 index 0000000000..5c9d5fcf3b --- /dev/null +++ b/tests/lac/shifted_matrix_02.output @@ -0,0 +1,4 @@ + +DEAL::vmult +DEAL::Dimensions of result vector verified +DEAL::10.0000 18.0000 diff --git a/tests/lac/shifted_matrix_03.cc b/tests/lac/shifted_matrix_03.cc new file mode 100644 index 0000000000..fc4c1dab5d --- /dev/null +++ b/tests/lac/shifted_matrix_03.cc @@ -0,0 +1,81 @@ +// --------------------------------------------------------------------- +// $Id: shifted_matrix.cc 32491 2014-03-13 dilangov $ +// +// Copyright (C) 2014 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. +// +// --------------------------------------------------------------------- + +// check ShiftedMatrix::checkResidual + +#include "../tests.h" +#include +#include +#include +#include + +#include +#include +#include + +template + void + checkResidual(FullMatrix &A, double sigma, Vector &V, + Vector &R) + { + deallog << "residual" << std::endl; + + ShiftedMatrix < FullMatrix > S(A, sigma); + Vector O(A.m()); + double residual; + + residual = S.residual(O, V, R); + + // Check the dimensions of the result matrix + Assert(A.m() == O.size(), ExcInternalError()); + deallog << "Dimensions of result vector verified" << std::endl; + + deallog << "Residual vector" << std::endl; + for (unsigned int i = 0; i < O.size(); ++i) + deallog << O(i) << '\t'; + deallog << std::endl; + + deallog << "Residual value" << std::endl; + deallog << residual << std::endl; + } + +int +main() +{ + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(4); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + const double Adata[] = + { 2, 3, 4, 5 }; + + FullMatrix A(2, 2); + + A.fill(Adata); + + Vector V(2); + V(0) = 1; + V(1) = 2; + + Vector R(2); + R(0) = 1; + R(1) = 1; + + checkResidual(A, 2, V, R); +} diff --git a/tests/lac/shifted_matrix_03.output b/tests/lac/shifted_matrix_03.output new file mode 100644 index 0000000000..64cf220694 --- /dev/null +++ b/tests/lac/shifted_matrix_03.output @@ -0,0 +1,7 @@ + +DEAL::residual +DEAL::Dimensions of result vector verified +DEAL::Residual vector +DEAL::-9.0000 -17.0000 +DEAL::Residual value +DEAL::19.2354 diff --git a/tests/lac/shifted_matrix_04.cc b/tests/lac/shifted_matrix_04.cc new file mode 100644 index 0000000000..32355a044a --- /dev/null +++ b/tests/lac/shifted_matrix_04.cc @@ -0,0 +1,88 @@ +// --------------------------------------------------------------------- +// $Id: shifted_matrix.cc 32491 2014-03-13 dilangov $ +// +// Copyright (C) 2014 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. +// +// --------------------------------------------------------------------- + +// check ShiftedMatrix::checkSetSigma + +#include "../tests.h" +#include +#include +#include +#include + +#include +#include +#include + +template + void + checkSetSigma(FullMatrix &A, double sigma) + { + deallog << "shift(sigma)" << std::endl; + + deallog << "Init ShiftedMatrix with sigma=0" << std::endl; + ShiftedMatrix < FullMatrix > S(A, 0); + + deallog << "Multiplying with all ones vector" << std::endl; + Vector V(A.n()); + for (unsigned int i = 0; i < V.size(); ++i) + V(i) = 1; + + Vector O(A.m()); + + S.vmult(O, V); + + // Check the dimensions of the result matrix + Assert(A.m() == O.size(), ExcInternalError()); + deallog << "Dimensions of result vector verified" << std::endl; + + for (unsigned int i = 0; i < O.size(); ++i) + deallog << O(i) << '\t'; + deallog << std::endl; + + deallog << "Setting new sigma value" << std::endl; + S.shift(sigma); + + deallog << "Multiplying with all ones vector" << std::endl; + S.vmult(O, V); + + // Check the dimensions of the result matrix + Assert(A.m() == O.size(), ExcInternalError()); + deallog << "Dimensions of result vector verified" << std::endl; + + for (unsigned int i = 0; i < O.size(); ++i) + deallog << O(i) << '\t'; + deallog << std::endl; + } + +int +main() +{ + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(4); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + const double Adata[] = + { 2, 3, 4, 5 }; + + FullMatrix A(2, 2); + + A.fill(Adata); + + checkSetSigma(A, 2); +} diff --git a/tests/lac/shifted_matrix_04.output b/tests/lac/shifted_matrix_04.output new file mode 100644 index 0000000000..822d2ddc4e --- /dev/null +++ b/tests/lac/shifted_matrix_04.output @@ -0,0 +1,10 @@ + +DEAL::shift(sigma) +DEAL::Init ShiftedMatrix with sigma=0 +DEAL::Multiplying with all ones vector +DEAL::Dimensions of result vector verified +DEAL::5.0000 9.0000 +DEAL::Setting new sigma value +DEAL::Multiplying with all ones vector +DEAL::Dimensions of result vector verified +DEAL::7.0000 11.0000 diff --git a/tests/lac/shifted_matrix_05.cc b/tests/lac/shifted_matrix_05.cc new file mode 100644 index 0000000000..8af92c3de7 --- /dev/null +++ b/tests/lac/shifted_matrix_05.cc @@ -0,0 +1,97 @@ +// --------------------------------------------------------------------- +// $Id: shifted_matrix.cc 32491 2014-03-13 dilangov $ +// +// Copyright (C) 2014 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. +// +// --------------------------------------------------------------------- + +// check ShiftedMatrix::checkGetSigma + +#include "../tests.h" +#include +#include +#include +#include + +#include +#include +#include + +template + void + checkGetSigma(FullMatrix &A) + { + deallog << "shift()" << std::endl; + + deallog << "Init ShiftedMatrix with sigma=0" << std::endl; + ShiftedMatrix < FullMatrix > S(A, 0); + + deallog << "Multiplying with all ones vector" << std::endl; + Vector V(A.n()); + for (unsigned int i = 0; i < V.size(); ++i) + V(i) = 1; + + Vector O(A.m()); + + S.vmult(O, V); + + // Check the dimensions of the result matrix + Assert(A.m() == O.size(), ExcInternalError()); + deallog << "Dimensions of result vector verified" << std::endl; + + for (unsigned int i = 0; i < O.size(); ++i) + deallog << O(i) << '\t'; + deallog << std::endl; + + deallog << "Setting new sigma value by incrementing old value by 1" + << std::endl; + + deallog << "Old sigma value" << std::endl; + double sigma = S.shift(); + deallog << sigma << std::endl; + sigma = sigma + 1; + deallog << "New sigma value" << std::endl; + deallog << sigma << std::endl; + + S.shift(sigma); + + deallog << "Multiplying with all ones vector" << std::endl; + S.vmult(O, V); + + // Check the dimensions of the result matrix + Assert(A.m() == O.size(), ExcInternalError()); + deallog << "Dimensions of result vector verified" << std::endl; + + for (unsigned int i = 0; i < O.size(); ++i) + deallog << O(i) << '\t'; + deallog << std::endl; + } + +int +main() +{ + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(4); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + const double Adata[] = + { 2, 3, 4, 5 }; + + FullMatrix A(2, 2); + + A.fill(Adata); + + checkGetSigma(A); +} diff --git a/tests/lac/shifted_matrix_05.output b/tests/lac/shifted_matrix_05.output new file mode 100644 index 0000000000..27f92db5f1 --- /dev/null +++ b/tests/lac/shifted_matrix_05.output @@ -0,0 +1,14 @@ + +DEAL::shift() +DEAL::Init ShiftedMatrix with sigma=0 +DEAL::Multiplying with all ones vector +DEAL::Dimensions of result vector verified +DEAL::5.0000 9.0000 +DEAL::Setting new sigma value by incrementing old value by 1 +DEAL::Old sigma value +DEAL::0 +DEAL::New sigma value +DEAL::1.0000 +DEAL::Multiplying with all ones vector +DEAL::Dimensions of result vector verified +DEAL::6.0000 10.0000 diff --git a/tests/lac/vector_view_01.cc b/tests/lac/vector_view_01.cc new file mode 100644 index 0000000000..7e8e80bf08 --- /dev/null +++ b/tests/lac/vector_view_01.cc @@ -0,0 +1,72 @@ +// --------------------------------------------------------------------- +// $Id: vector_view_01.cc 2014-03-14 dilangov $ +// +// 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. +// +// --------------------------------------------------------------------- + +// check VectorView::checkReadOnlyConstructor + +#include "../tests.h" +#include +#include +#include +#include +#include +#include + +template + void + checkReadOnlyConstructor(const Vector &V) + { + deallog << "Read-only constructor" << std::endl; + VectorView VV(V.size(), V.begin()); + + deallog << "Printing Vector" << std::endl; + for (unsigned int i = 0; i < V.size(); ++i) + deallog << V(i) << '\t'; + deallog << std::endl; + + deallog << "Printing VectorView pointing to Vector" + << std::endl; + for (unsigned int i = 0; i < VV.size(); ++i) + deallog << VV(i) << '\t'; + deallog << std::endl; + + /* deallog << "Incrementing Vector elements using Read-only handle of VectorView" << std::endl; + deallog << "Function fails beyond this point" << std::endl; + for (unsigned int i=0; i V1(5); + V1(0) = 1; + V1(1) = 2; + V1(2) = 3; + V1(3) = 4; + V1(4) = 5; + + const Vector V2(V1); + + checkReadOnlyConstructor(V2); +} + diff --git a/tests/lac/vector_view_01.output b/tests/lac/vector_view_01.output new file mode 100644 index 0000000000..7ab6f1aa86 --- /dev/null +++ b/tests/lac/vector_view_01.output @@ -0,0 +1,6 @@ + +DEAL::Read-only constructor +DEAL::Printing Vector +DEAL::1.00 2.00 3.00 4.00 5.00 +DEAL::Printing VectorView pointing to Vector +DEAL::1.00 2.00 3.00 4.00 5.00 diff --git a/tests/lac/vector_view_02.cc b/tests/lac/vector_view_02.cc new file mode 100644 index 0000000000..c980ab7b9a --- /dev/null +++ b/tests/lac/vector_view_02.cc @@ -0,0 +1,86 @@ +// --------------------------------------------------------------------- +// $Id: vector_view_01.cc 2014-03-14 dilangov $ +// +// 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. +// +// --------------------------------------------------------------------- + +// check VectorView::checkReinit1 + +#include "../tests.h" +#include +#include +#include +#include +#include +#include + +template + void + checkReinit1(const size_type N, const bool fast = false) + { + deallog << "Reinit with const size and fast" << std::endl; + + deallog + << "Creating Vector of size N+10 and filling with values 1 to N+10" + << std::endl; + + Vector < number > V(N + 10); + for (unsigned int i = 0; i < V.size(); i++) + V(i) = i + 1; + + deallog + << "Creating VectorView of size N+10 pointing to Vector" + << std::endl; + VectorView VV(V.size(), V.begin()); + + deallog << "Printing Vector" << std::endl; + for (unsigned int i = 0; i < V.size(); ++i) + deallog << V(i) << '\t'; + deallog << std::endl; + + deallog << "Printing VectorView pointing to Vector" + << std::endl; + for (unsigned int i = 0; i < VV.size(); ++i) + deallog << VV(i) << '\t'; + deallog << std::endl; + + deallog << "Reinit VectorView to size N from N+10 with fast=" + << fast << std::endl; + VV.reinit(N, fast); + + deallog << "Printing Vector" << std::endl; + for (unsigned int i = 0; i < V.size(); ++i) + deallog << V(i) << '\t'; + deallog << std::endl; + + deallog << "Printing VectorView pointing to Vector" + << std::endl; + for (unsigned int i = 0; i < VV.size(); ++i) + deallog << VV(i) << '\t'; + deallog << std::endl; + } + +int +main() +{ + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(2); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + checkReinit1(10, false); + checkReinit1(10, true); +} + diff --git a/tests/lac/vector_view_02.output b/tests/lac/vector_view_02.output new file mode 100644 index 0000000000..46a51699ce --- /dev/null +++ b/tests/lac/vector_view_02.output @@ -0,0 +1,25 @@ + +DEAL::Reinit with const size and fast +DEAL::Creating Vector of size N+10 and filling with values 1 to N+10 +DEAL::Creating VectorView of size N+10 pointing to Vector +DEAL::Printing Vector +DEAL::1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 +DEAL::Printing VectorView pointing to Vector +DEAL::1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 +DEAL::Reinit VectorView to size N from N+10 with fast=0 +DEAL::Printing Vector +DEAL::0 0 0 0 0 0 0 0 0 0 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 +DEAL::Printing VectorView pointing to Vector +DEAL::0 0 0 0 0 0 0 0 0 0 +DEAL::Reinit with const size and fast +DEAL::Creating Vector of size N+10 and filling with values 1 to N+10 +DEAL::Creating VectorView of size N+10 pointing to Vector +DEAL::Printing Vector +DEAL::1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 +DEAL::Printing VectorView pointing to Vector +DEAL::1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 +DEAL::Reinit VectorView to size N from N+10 with fast=1 +DEAL::Printing Vector +DEAL::1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 +DEAL::Printing VectorView pointing to Vector +DEAL::1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 diff --git a/tests/lac/vector_view_03.cc b/tests/lac/vector_view_03.cc new file mode 100644 index 0000000000..758e01ec10 --- /dev/null +++ b/tests/lac/vector_view_03.cc @@ -0,0 +1,100 @@ +// --------------------------------------------------------------------- +// $Id: vector_view_01.cc 2014-03-14 dilangov $ +// +// 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. +// +// --------------------------------------------------------------------- + +// check VectorView::checkReinit3 + +#include "../tests.h" +#include +#include +#include +#include +#include +#include + +template + void + checkReinit3(const Vector &V) + { + deallog + << "Reinit a ReadOnly VectorView with const Vector and const size" + << std::endl; + + deallog + << "Creating dummy Vector of size V.size() and filling with zeros" + << std::endl; + + Vector _V(V.size()); + for (unsigned int i = 0; i < _V.size(); i++) + _V(i) = 0; + + deallog << "Creating VectorView pointing to dummy Vector" + << std::endl; + VectorView VV(_V.size(), _V.begin()); + + deallog << "Printing dummy Vector" << std::endl; + for (unsigned int i = 0; i < _V.size(); ++i) + deallog << _V(i) << '\t'; + deallog << std::endl; + + deallog << "Printing VectorView pointing to dummy Vector" + << std::endl; + for (unsigned int i = 0; i < VV.size(); ++i) + deallog << VV(i) << '\t'; + deallog << std::endl; + + deallog << "Reinit VectorView to half of Vector" + << std::endl; + VV.reinit(V.size() / 2, V.begin()); + + deallog << "Printing Vector" << std::endl; + for (unsigned int i = 0; i < V.size(); ++i) + deallog << V(i) << '\t'; + deallog << std::endl; + + deallog << "Printing VectorView pointing to half of Vector" + << std::endl; + for (unsigned int i = 0; i < VV.size(); ++i) + deallog << VV(i) << '\t'; + deallog << std::endl; + + /* deallog << "Incrementing Vector elements using Read-only handle of VectorView" << std::endl; + deallog << "Function fails beyond this point" << std::endl; + for (unsigned int i=0; i V1(5); + V1(0) = 1; + V1(1) = 2; + V1(2) = 3; + V1(3) = 4; + V1(4) = 5; + + const Vector V2(V1); + + checkReinit3(V2); +} + diff --git a/tests/lac/vector_view_03.output b/tests/lac/vector_view_03.output new file mode 100644 index 0000000000..cfac6a7daf --- /dev/null +++ b/tests/lac/vector_view_03.output @@ -0,0 +1,13 @@ + +DEAL::Reinit a ReadOnly VectorView with const Vector and const size +DEAL::Creating dummy Vector of size V.size() and filling with zeros +DEAL::Creating VectorView pointing to dummy Vector +DEAL::Printing dummy Vector +DEAL::0 0 0 0 0 +DEAL::Printing VectorView pointing to dummy Vector +DEAL::0 0 0 0 0 +DEAL::Reinit VectorView to half of Vector +DEAL::Printing Vector +DEAL::1.00 2.00 3.00 4.00 5.00 +DEAL::Printing VectorView pointing to half of Vector +DEAL::1.00 2.00 diff --git a/tests/lac/vector_view_04.cc b/tests/lac/vector_view_04.cc new file mode 100644 index 0000000000..7ffdf13358 --- /dev/null +++ b/tests/lac/vector_view_04.cc @@ -0,0 +1,104 @@ +// --------------------------------------------------------------------- +// $Id: vector_view_01.cc 2014-03-14 dilangov $ +// +// 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. +// +// --------------------------------------------------------------------- + +// check VectorView::checkReinit2 + +#include "../tests.h" +#include +#include +#include +#include +#include +#include + +template + void + checkReinit2(Vector &V) + { + deallog + << "Reinit a ReadWrite VectorView with Vector and const size" + << std::endl; + + deallog + << "Creating dummy Vector of size V.size() and filling with zeros" + << std::endl; + + Vector _V(V.size()); + for (unsigned int i = 0; i < _V.size(); i++) + _V(i) = 0; + + deallog << "Creating VectorView pointing to dummy Vector" + << std::endl; + VectorView VV(_V.size(), _V.begin()); + + deallog << "Printing dummy Vector" << std::endl; + for (unsigned int i = 0; i < _V.size(); ++i) + deallog << _V(i) << '\t'; + deallog << std::endl; + + deallog << "Printing VectorView pointing to dummy Vector" + << std::endl; + for (unsigned int i = 0; i < VV.size(); ++i) + deallog << VV(i) << '\t'; + deallog << std::endl; + + deallog << "Reinit VectorView to half of Vector" + << std::endl; + VV.reinit(V.size() / 2, V.begin()); + + deallog << "Printing Vector" << std::endl; + for (unsigned int i = 0; i < V.size(); ++i) + deallog << V(i) << '\t'; + deallog << std::endl; + + deallog << "Printing VectorView pointing to half of Vector" + << std::endl; + for (unsigned int i = 0; i < VV.size(); ++i) + deallog << VV(i) << '\t'; + deallog << std::endl; + + deallog + << "Incrementing Vector elements using Read-write handle of VectorView" + << std::endl; + for (unsigned int i = 0; i < VV.size(); ++i) + VV(i) = VV(i) + 1; + + deallog << "Printing modified Vector" << std::endl; + for (unsigned int i = 0; i < V.size(); ++i) + deallog << V(i) << '\t'; + deallog << std::endl; + } + +int +main() +{ + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(2); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + Vector V1(5); + V1(0) = 1; + V1(1) = 2; + V1(2) = 3; + V1(3) = 4; + V1(4) = 5; + + checkReinit2(V1); +} + diff --git a/tests/lac/vector_view_04.output b/tests/lac/vector_view_04.output new file mode 100644 index 0000000000..19d52f0f9a --- /dev/null +++ b/tests/lac/vector_view_04.output @@ -0,0 +1,16 @@ + +DEAL::Reinit a ReadWrite VectorView with Vector and const size +DEAL::Creating dummy Vector of size V.size() and filling with zeros +DEAL::Creating VectorView pointing to dummy Vector +DEAL::Printing dummy Vector +DEAL::0 0 0 0 0 +DEAL::Printing VectorView pointing to dummy Vector +DEAL::0 0 0 0 0 +DEAL::Reinit VectorView to half of Vector +DEAL::Printing Vector +DEAL::1.00 2.00 3.00 4.00 5.00 +DEAL::Printing VectorView pointing to half of Vector +DEAL::1.00 2.00 +DEAL::Incrementing Vector elements using Read-write handle of VectorView +DEAL::Printing modified Vector +DEAL::2.00 3.00 3.00 4.00 5.00 diff --git a/tests/lac/vector_view_05.cc b/tests/lac/vector_view_05.cc new file mode 100644 index 0000000000..7ff1b973a2 --- /dev/null +++ b/tests/lac/vector_view_05.cc @@ -0,0 +1,76 @@ +// --------------------------------------------------------------------- +// $Id: vector_view_01.cc 2014-03-14 dilangov $ +// +// 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. +// +// --------------------------------------------------------------------- + +// check VectorView::checkReadWriteConstructor + +#include "../tests.h" +#include +#include +#include +#include +#include +#include + +template + void + checkReadWriteConstructor(Vector &V) + { + deallog << "Read-write constructor" << std::endl; + VectorView VV(V.size(), V.begin()); + + deallog << "Printing Vector" << std::endl; + for (unsigned int i = 0; i < V.size(); ++i) + deallog << V(i) << '\t'; + deallog << std::endl; + + deallog << "Printing VectorView pointing to Vector" + << std::endl; + for (unsigned int i = 0; i < VV.size(); ++i) + deallog << VV(i) << '\t'; + deallog << std::endl; + + deallog + << "Incrementing Vector elements using Read-write handle of VectorView" + << std::endl; + for (unsigned int i = 0; i < VV.size(); ++i) + VV(i) = VV(i) + 1; + + deallog << "Printing modified Vector" << std::endl; + for (unsigned int i = 0; i < V.size(); ++i) + deallog << V(i) << '\t'; + deallog << std::endl; + } + +int +main() +{ + std::ofstream logfile("output"); + deallog << std::fixed; + deallog << std::setprecision(2); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + Vector V1(5); + V1(0) = 1; + V1(1) = 2; + V1(2) = 3; + V1(3) = 4; + V1(4) = 5; + + checkReadWriteConstructor(V1); +} + diff --git a/tests/lac/vector_view_05.output b/tests/lac/vector_view_05.output new file mode 100644 index 0000000000..e3fa623e5b --- /dev/null +++ b/tests/lac/vector_view_05.output @@ -0,0 +1,9 @@ + +DEAL::Read-write constructor +DEAL::Printing Vector +DEAL::1.00 2.00 3.00 4.00 5.00 +DEAL::Printing VectorView pointing to Vector +DEAL::1.00 2.00 3.00 4.00 5.00 +DEAL::Incrementing Vector elements using Read-write handle of VectorView +DEAL::Printing modified Vector +DEAL::2.00 3.00 4.00 5.00 6.00 diff --git a/tests/lapack/full_matrix_00.cc b/tests/lapack/full_matrix_00.cc new file mode 100644 index 0000000000..ed28930476 --- /dev/null +++ b/tests/lapack/full_matrix_00.cc @@ -0,0 +1,113 @@ +// --------------------------------------------------------------------- +// $Id: full_matrix_00.cc $ +// +// Copyright (C) 2014 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. +// +// --------------------------------------------------------------------- + + +// Tests reinitialisation of square and rectangle LAPACKFullMatrix + +#include "../tests.h" +#include +#include + +#include +#include + + +void test (const unsigned int size, + const bool reinit_square) +{ + // this test can not currently work with matrices smaller than + // 1\times2. + Assert (size>2, ExcInternalError()); + + // initialise a first matrix with the standard constructor and fill + // it with some numbers + LAPACKFullMatrix M (size, size); + + for (unsigned int i=0; i N (size+2, size-2); + + for (unsigned int i=0; i +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + + +template +void test() +{ + unsigned int myid = Utilities::MPI::this_mpi_process (MPI_COMM_WORLD); + parallel::distributed::Triangulation tr(MPI_COMM_WORLD); + + std::vector sub(2); + sub[0] = Utilities::MPI::n_mpi_processes (MPI_COMM_WORLD); + sub[1] = 1; + GridGenerator::subdivided_hyper_rectangle(static_cast&>(tr), + sub, Point<2>(0,0), Point<2>(1,1)); + + FE_Q_DG0 fe(1); + DoFHandler dofh(tr); + dofh.distribute_dofs (fe); + + if (Utilities::MPI::this_mpi_process (MPI_COMM_WORLD) == 0) + deallog << "Total dofs=" << dofh.n_dofs() << std::endl; + + // extract constant modes and print + if (myid == 0) + { + std::vector mask(fe.n_components(), true); + + std::vector > constant_modes; + DoFTools::extract_constant_modes (dofh, mask, constant_modes); + + for (unsigned int i=0; i(); + deallog.pop(); + } + else + { + deallog.push("2d"); + test<2>(); + deallog.pop(); + } +} diff --git a/tests/mpi/extract_constant_modes_02.mpirun=4.output b/tests/mpi/extract_constant_modes_02.mpirun=4.output new file mode 100644 index 0000000000..63cce8e31f --- /dev/null +++ b/tests/mpi/extract_constant_modes_02.mpirun=4.output @@ -0,0 +1,4 @@ + +DEAL:0:2d::Total dofs=14 +DEAL:0:2d::1 1 1 1 0 +DEAL:0:2d::0 0 0 0 1 diff --git a/tests/mpi/mesh_worker_05.cc b/tests/mpi/mesh_worker_05.cc new file mode 100644 index 0000000000..3387e1abc5 --- /dev/null +++ b/tests/mpi/mesh_worker_05.cc @@ -0,0 +1,230 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2000 - 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 meshworker LoopControl +// variation of mesh_worker_01 with more cpus and cells + +#include "../tests.h" +#include +#include + +#include +#include +#include +#include + +#include +#include + +using namespace dealii; + + +template +class myIntegrator: public dealii::MeshWorker::LocalIntegrator +{ +public: + typedef MeshWorker::IntegrationInfo CellInfo; + + void cell(MeshWorker::DoFInfo &dinfo, CellInfo &info) const; + void boundary(MeshWorker::DoFInfo &dinfo, CellInfo &info) const; + void face(MeshWorker::DoFInfo &dinfo1, MeshWorker::DoFInfo &dinfo2, + CellInfo &info1, CellInfo &info2) const; + + +}; + +template +void +myIntegrator::cell(MeshWorker::DoFInfo &info, CellInfo &) const +{ + deallog << "C " << info.cell->id() << std::endl; +} + + +template +void +myIntegrator::boundary(MeshWorker::DoFInfo &info, CellInfo &) const +{ + //deallog << "B cell = " << info.cell->id() << " face = " << info.face_number << std::endl; +} + + +template +void +myIntegrator::face(MeshWorker::DoFInfo &info1, MeshWorker::DoFInfo &info2, + CellInfo &, CellInfo &) const +{ + deallog << "F cell1 = " << info1.cell->id() + << " face = " << info1.face_number + << " cell2 = " << info2.cell->id() + << " face2 = " << info2.face_number + << std::endl; +} + + +class DoNothingAssembler +{ + public: + template + void initialize_info(DOFINFO &info, bool face) const {} + template + void assemble(const DOFINFO &info){} + template + void assemble(const DOFINFO &info1, + const DOFINFO &info2) {} + + + }; + +template +void +test_simple(DoFHandler &dofs, MeshWorker::LoopControl &lctrl) +{ + myIntegrator local; + DoNothingAssembler assembler; + MeshWorker::IntegrationInfoBox info_box; + + MeshWorker::DoFInfo dof_info(dofs.block_info()); + +// integration_loop(ITERATOR begin, +// typename identity::type end, +// DOFINFO &dinfo, +// INFOBOX &info, +// const std_cxx1x::function &cell_worker, +// const std_cxx1x::function &boundary_worker, +// const std_cxx1x::function &face_worker, +// ASSEMBLER &assembler, +// const LoopControl &lctrl) +// + + + MeshWorker::integration_loop::active_cell_iterator, DoNothingAssembler> + (dofs.begin_active(), dofs.end(), + dof_info, info_box, + local, + assembler, + lctrl); + +// MeshWorker::loop, MeshWorker::IntegrationInfoBox > +// (dofs.begin_active(), dofs.end(), +// dof_info, info_box, +// std_cxx1x::bind (&Integrator::cell, local, std_cxx1x::_1, std_cxx1x::_2), +// std_cxx1x::bind (&Integrator::bdry, local, std_cxx1x::_1, std_cxx1x::_2), +// std_cxx1x::bind (&Integrator::face, local, std_cxx1x::_1, std_cxx1x::_2, std_cxx1x::_3, std_cxx1x::_4), +// local, +// lctrl); +} + +std::string id_to_string(const CellId &id) +{ + std::ostringstream ss; + ss << id; + return ss.str(); +} + +template +void test_loop(DoFHandler &dofs, MeshWorker::LoopControl &lctrl) +{ + deallog << "* own_cells=" << lctrl.own_cells + << " ghost_cells=" << lctrl.ghost_cells + << " own_faces=" << lctrl.own_faces + << " faces_to_ghost=" << lctrl.faces_to_ghost + << std::endl; + test_simple(dofs, lctrl); +} + +template +void +test() +{ + parallel::distributed::Triangulation tr(MPI_COMM_WORLD, + Triangulation::none/*, + parallel::distributed::Triangulation::construct_multigrid_hierarchy*/); + GridGenerator::hyper_cube(tr); + tr.refine_global(2); + + FE_DGP fe(0); + + DoFHandler dofs(tr); + dofs.distribute_dofs(fe); + + dofs.initialize_local_block_info(); + deallog << "DoFHandler ndofs=" << dofs.n_dofs() << std::endl; + + MeshWorker::LoopControl lctrl; + + deallog << "*** 1. CELLS ***" << std::endl; + /* + lctrl.own_faces = MeshWorker::LoopControl::never; + lctrl.faces_to_ghost = MeshWorker::LoopControl::never; + + lctrl.own_cells = false; lctrl.ghost_cells = false; + test_loop(dofs, lctrl); + + lctrl.own_cells = true; lctrl.ghost_cells = false; + test_loop(dofs, lctrl); + + lctrl.own_cells = false; lctrl.ghost_cells = true; + test_loop(dofs, lctrl); + + lctrl.own_cells = true; lctrl.ghost_cells = true; + test_loop(dofs, lctrl); + */ + deallog << "*** 2. FACES ***" << std::endl; + + lctrl.own_cells = false; lctrl.ghost_cells = false; + + lctrl.own_faces = MeshWorker::LoopControl::one; + lctrl.faces_to_ghost = MeshWorker::LoopControl::never; + test_loop(dofs, lctrl); + + lctrl.own_faces = MeshWorker::LoopControl::both; + lctrl.faces_to_ghost = MeshWorker::LoopControl::never; + test_loop(dofs, lctrl); + + lctrl.own_faces = MeshWorker::LoopControl::never; + lctrl.faces_to_ghost = MeshWorker::LoopControl::one; + test_loop(dofs, lctrl); + + lctrl.own_faces = MeshWorker::LoopControl::never; + lctrl.faces_to_ghost = MeshWorker::LoopControl::both; + test_loop(dofs, lctrl); + +// +// +// for (int gc=0;gc<2;gc++) +// for (int oc=0;oc<2;oc++) +// for (int of=0;of<3;of++) +// { +// lctrl.own_cells = !!oc; +// lctrl.ghost_cells = !!gc; +// +// lctrl.own_faces = (MeshWorker::LoopControl::FaceOption)of; +// test_loop(dofs, lctrl); +// } +} + + +int main (int argc, char **argv) +{ + Utilities::MPI::MPI_InitFinalize mpi_initialization (argc, argv); + MPILogInitAll log; + + test<2>(); +} diff --git a/tests/mpi/mesh_worker_05.mpirun=3.output b/tests/mpi/mesh_worker_05.mpirun=3.output new file mode 100644 index 0000000000..3a873e7ec5 --- /dev/null +++ b/tests/mpi/mesh_worker_05.mpirun=3.output @@ -0,0 +1,98 @@ + +DEAL:0::DoFHandler ndofs=16 +DEAL:0::*** 1. CELLS *** +DEAL:0::*** 2. FACES *** +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=1 faces_to_ghost=0 +DEAL:0::F cell1 = 0_2:00 face = 1 cell2 = 0_2:01 face2 = 0 +DEAL:0::F cell1 = 0_2:00 face = 3 cell2 = 0_2:02 face2 = 2 +DEAL:0::F cell1 = 0_2:01 face = 3 cell2 = 0_2:03 face2 = 2 +DEAL:0::F cell1 = 0_2:02 face = 1 cell2 = 0_2:03 face2 = 0 +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=2 faces_to_ghost=0 +DEAL:0::F cell1 = 0_2:00 face = 1 cell2 = 0_2:01 face2 = 0 +DEAL:0::F cell1 = 0_2:00 face = 3 cell2 = 0_2:02 face2 = 2 +DEAL:0::F cell1 = 0_2:01 face = 0 cell2 = 0_2:00 face2 = 1 +DEAL:0::F cell1 = 0_2:01 face = 3 cell2 = 0_2:03 face2 = 2 +DEAL:0::F cell1 = 0_2:02 face = 1 cell2 = 0_2:03 face2 = 0 +DEAL:0::F cell1 = 0_2:02 face = 2 cell2 = 0_2:00 face2 = 3 +DEAL:0::F cell1 = 0_2:03 face = 0 cell2 = 0_2:02 face2 = 1 +DEAL:0::F cell1 = 0_2:03 face = 2 cell2 = 0_2:01 face2 = 3 +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=1 +DEAL:0::F cell1 = 0_2:01 face = 1 cell2 = 0_2:10 face2 = 0 +DEAL:0::F cell1 = 0_2:02 face = 3 cell2 = 0_2:20 face2 = 2 +DEAL:0::F cell1 = 0_2:03 face = 1 cell2 = 0_2:12 face2 = 0 +DEAL:0::F cell1 = 0_2:03 face = 3 cell2 = 0_2:21 face2 = 2 +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=2 +DEAL:0::F cell1 = 0_2:01 face = 1 cell2 = 0_2:10 face2 = 0 +DEAL:0::F cell1 = 0_2:02 face = 3 cell2 = 0_2:20 face2 = 2 +DEAL:0::F cell1 = 0_2:03 face = 1 cell2 = 0_2:12 face2 = 0 +DEAL:0::F cell1 = 0_2:03 face = 3 cell2 = 0_2:21 face2 = 2 + +DEAL:1::DoFHandler ndofs=16 +DEAL:1::*** 1. CELLS *** +DEAL:1::*** 2. FACES *** +DEAL:1::* own_cells=0 ghost_cells=0 own_faces=1 faces_to_ghost=0 +DEAL:1::F cell1 = 0_2:10 face = 1 cell2 = 0_2:11 face2 = 0 +DEAL:1::F cell1 = 0_2:10 face = 3 cell2 = 0_2:12 face2 = 2 +DEAL:1::F cell1 = 0_2:11 face = 3 cell2 = 0_2:13 face2 = 2 +DEAL:1::F cell1 = 0_2:12 face = 1 cell2 = 0_2:13 face2 = 0 +DEAL:1::F cell1 = 0_2:20 face = 1 cell2 = 0_2:21 face2 = 0 +DEAL:1::F cell1 = 0_2:20 face = 3 cell2 = 0_2:22 face2 = 2 +DEAL:1::F cell1 = 0_2:21 face = 3 cell2 = 0_2:23 face2 = 2 +DEAL:1::F cell1 = 0_2:22 face = 1 cell2 = 0_2:23 face2 = 0 +DEAL:1::* own_cells=0 ghost_cells=0 own_faces=2 faces_to_ghost=0 +DEAL:1::F cell1 = 0_2:10 face = 1 cell2 = 0_2:11 face2 = 0 +DEAL:1::F cell1 = 0_2:10 face = 3 cell2 = 0_2:12 face2 = 2 +DEAL:1::F cell1 = 0_2:11 face = 0 cell2 = 0_2:10 face2 = 1 +DEAL:1::F cell1 = 0_2:11 face = 3 cell2 = 0_2:13 face2 = 2 +DEAL:1::F cell1 = 0_2:12 face = 1 cell2 = 0_2:13 face2 = 0 +DEAL:1::F cell1 = 0_2:12 face = 2 cell2 = 0_2:10 face2 = 3 +DEAL:1::F cell1 = 0_2:13 face = 0 cell2 = 0_2:12 face2 = 1 +DEAL:1::F cell1 = 0_2:13 face = 2 cell2 = 0_2:11 face2 = 3 +DEAL:1::F cell1 = 0_2:20 face = 1 cell2 = 0_2:21 face2 = 0 +DEAL:1::F cell1 = 0_2:20 face = 3 cell2 = 0_2:22 face2 = 2 +DEAL:1::F cell1 = 0_2:21 face = 0 cell2 = 0_2:20 face2 = 1 +DEAL:1::F cell1 = 0_2:21 face = 3 cell2 = 0_2:23 face2 = 2 +DEAL:1::F cell1 = 0_2:22 face = 1 cell2 = 0_2:23 face2 = 0 +DEAL:1::F cell1 = 0_2:22 face = 2 cell2 = 0_2:20 face2 = 3 +DEAL:1::F cell1 = 0_2:23 face = 0 cell2 = 0_2:22 face2 = 1 +DEAL:1::F cell1 = 0_2:23 face = 2 cell2 = 0_2:21 face2 = 3 +DEAL:1::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=1 +DEAL:1::F cell1 = 0_2:12 face = 3 cell2 = 0_2:30 face2 = 2 +DEAL:1::F cell1 = 0_2:13 face = 3 cell2 = 0_2:31 face2 = 2 +DEAL:1::F cell1 = 0_2:21 face = 1 cell2 = 0_2:30 face2 = 0 +DEAL:1::F cell1 = 0_2:23 face = 1 cell2 = 0_2:32 face2 = 0 +DEAL:1::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=2 +DEAL:1::F cell1 = 0_2:10 face = 0 cell2 = 0_2:01 face2 = 1 +DEAL:1::F cell1 = 0_2:12 face = 0 cell2 = 0_2:03 face2 = 1 +DEAL:1::F cell1 = 0_2:12 face = 3 cell2 = 0_2:30 face2 = 2 +DEAL:1::F cell1 = 0_2:13 face = 3 cell2 = 0_2:31 face2 = 2 +DEAL:1::F cell1 = 0_2:20 face = 2 cell2 = 0_2:02 face2 = 3 +DEAL:1::F cell1 = 0_2:21 face = 1 cell2 = 0_2:30 face2 = 0 +DEAL:1::F cell1 = 0_2:21 face = 2 cell2 = 0_2:03 face2 = 3 +DEAL:1::F cell1 = 0_2:23 face = 1 cell2 = 0_2:32 face2 = 0 + + +DEAL:2::DoFHandler ndofs=16 +DEAL:2::*** 1. CELLS *** +DEAL:2::*** 2. FACES *** +DEAL:2::* own_cells=0 ghost_cells=0 own_faces=1 faces_to_ghost=0 +DEAL:2::F cell1 = 0_2:30 face = 1 cell2 = 0_2:31 face2 = 0 +DEAL:2::F cell1 = 0_2:30 face = 3 cell2 = 0_2:32 face2 = 2 +DEAL:2::F cell1 = 0_2:31 face = 3 cell2 = 0_2:33 face2 = 2 +DEAL:2::F cell1 = 0_2:32 face = 1 cell2 = 0_2:33 face2 = 0 +DEAL:2::* own_cells=0 ghost_cells=0 own_faces=2 faces_to_ghost=0 +DEAL:2::F cell1 = 0_2:30 face = 1 cell2 = 0_2:31 face2 = 0 +DEAL:2::F cell1 = 0_2:30 face = 3 cell2 = 0_2:32 face2 = 2 +DEAL:2::F cell1 = 0_2:31 face = 0 cell2 = 0_2:30 face2 = 1 +DEAL:2::F cell1 = 0_2:31 face = 3 cell2 = 0_2:33 face2 = 2 +DEAL:2::F cell1 = 0_2:32 face = 1 cell2 = 0_2:33 face2 = 0 +DEAL:2::F cell1 = 0_2:32 face = 2 cell2 = 0_2:30 face2 = 3 +DEAL:2::F cell1 = 0_2:33 face = 0 cell2 = 0_2:32 face2 = 1 +DEAL:2::F cell1 = 0_2:33 face = 2 cell2 = 0_2:31 face2 = 3 +DEAL:2::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=1 +DEAL:2::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=2 +DEAL:2::F cell1 = 0_2:30 face = 0 cell2 = 0_2:21 face2 = 1 +DEAL:2::F cell1 = 0_2:30 face = 2 cell2 = 0_2:12 face2 = 3 +DEAL:2::F cell1 = 0_2:31 face = 2 cell2 = 0_2:13 face2 = 3 +DEAL:2::F cell1 = 0_2:32 face = 0 cell2 = 0_2:23 face2 = 1 + diff --git a/tests/mpi/torus.cc b/tests/mpi/torus.cc new file mode 100644 index 0000000000..e61edf5dea --- /dev/null +++ b/tests/mpi/torus.cc @@ -0,0 +1,118 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2014 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. +// +// --------------------------------------------------------------------- + +/* + * Author: Guido Kanschat, Texas A&M University, 2009 + */ + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + + +typedef parallel::distributed::Triangulation<2,3>::cell_iterator cell_iterator; +DeclException1(ExcMissingCell, + cell_iterator, + << "Trying to find cell " << arg1 << " but it doesn't appear to be in the list"); + +int main(int argc, char *argv[]) +{ + dealii::Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv); + MPILogInitAll log; + + if (Utilities::MPI::this_mpi_process (MPI_COMM_WORLD) == 0) + { + static std::ofstream logfile("output"); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + } + + parallel::distributed::Triangulation<2,3> triangulation(MPI_COMM_WORLD, + typename Triangulation<2,3>::MeshSmoothing + (Triangulation<2,3>::smoothing_on_refinement | + Triangulation<2,3 >::smoothing_on_coarsening)); + GridGenerator::torus(triangulation, 1, 0.2); + + // create a set of all cells, and insert all cells into it + std::set::cell_iterator> cells; + for (parallel::distributed::Triangulation<2,3>::cell_iterator cell= triangulation.begin(0); + cell!=triangulation.end(0); + ++cell) + { + cells.insert (cell); + if (Utilities::MPI::this_mpi_process (MPI_COMM_WORLD) == 0) + deallog << "Adding cell " << cell << std::endl; + } + if (Utilities::MPI::this_mpi_process (MPI_COMM_WORLD) == 0) + deallog << "List contains " << cells.size() << " items" << std::endl; + + // verify that every cell is in there + for(parallel::distributed::Triangulation<2,3>::cell_iterator cell= triangulation.begin(0); + cell!=triangulation.end(0); + ++cell) + Assert (cells.find(cell)!=cells.end(), + ExcMissingCell(cell)); + + // refine triangulation and verify that every coarse mesh cell is in there + triangulation.refine_global(2); + + if (Utilities::MPI::this_mpi_process (MPI_COMM_WORLD) == 0) + deallog << "List contains " << cells.size() << " items" << std::endl; + for(parallel::distributed::Triangulation<2,3>::cell_iterator cell= triangulation.begin(0); + cell!=triangulation.end(0); + ++cell) + Assert (cells.find(cell)!=cells.end(), + ExcMissingCell(cell)); +} diff --git a/tests/mpi/torus.mpirun=2.output b/tests/mpi/torus.mpirun=2.output new file mode 100644 index 0000000000..8a55e82d08 --- /dev/null +++ b/tests/mpi/torus.mpirun=2.output @@ -0,0 +1,21 @@ + +DEAL:0::Adding cell 0.0 +DEAL:0::Adding cell 0.1 +DEAL:0::Adding cell 0.2 +DEAL:0::Adding cell 0.3 +DEAL:0::Adding cell 0.4 +DEAL:0::Adding cell 0.5 +DEAL:0::Adding cell 0.6 +DEAL:0::Adding cell 0.7 +DEAL:0::Adding cell 0.8 +DEAL:0::Adding cell 0.9 +DEAL:0::Adding cell 0.10 +DEAL:0::Adding cell 0.11 +DEAL:0::Adding cell 0.12 +DEAL:0::Adding cell 0.13 +DEAL:0::Adding cell 0.14 +DEAL:0::Adding cell 0.15 +DEAL:0::List contains 16 items +DEAL:0::List contains 16 items + + -- 2.39.5