--- /dev/null
+//---------------------------------------------------------------------------
+// $Id: ghost_01.cc 28440 2013-02-17 14:35:08Z heister $
+// Version: $Name$
+//
+// Copyright (C) 2004, 2005, 2010 by the deal.II authors
+//
+// This file is subject to QPL and may not be distributed
+// without copyright and license information. Please refer
+// to the file deal.II/doc/license.html for the text and
+// further information on this license.
+//
+//---------------------------------------------------------------------------
+
+
+// test problem in distribute_sparsity_pattern (block version)
+// now Trilinos and PETSc produce the same block matrix
+
+
+#define USE_PETSC_LA
+
+#include "../tests.h"
+#include <deal.II/lac/generic_linear_algebra.h>
+#include <deal.II/base/index_set.h>
+#include <fstream>
+#include <iostream>
+#include <iomanip>
+#include <vector>
+#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/constraint_matrix.h>
+#include <deal.II/grid/tria.h>
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/dofs/dof_handler.h>
+#include <deal.II/fe/fe_q.h>
+#include <deal.II/fe/fe_dgp.h>
+#include <deal.II/fe/fe_system.h>
+#include <deal.II/dofs/dof_tools.h>
+#include <deal.II/dofs/dof_renumbering.h>
+#include <deal.II/lac/sparsity_tools.h>
+#include <deal.II/lac/block_sparsity_pattern.h>
+
+#include "gla.h"
+
+template <class LA, int dim>
+void test ()
+{
+ unsigned int myid = Utilities::MPI::this_mpi_process (MPI_COMM_WORLD);
+ unsigned int numproc = Utilities::MPI::n_mpi_processes (MPI_COMM_WORLD);
+
+ if (myid==0)
+ deallog << "numproc=" << numproc << std::endl;
+
+
+ parallel::distributed::Triangulation<dim>
+ triangulation (MPI_COMM_WORLD,
+ typename Triangulation<dim>::MeshSmoothing
+ (Triangulation<dim>::smoothing_on_refinement |
+ Triangulation<dim>::smoothing_on_coarsening));
+
+ GridGenerator::hyper_cube(triangulation);
+ triangulation.refine_global(2);
+
+ const FESystem<dim> stokes_fe(FE_Q<dim>(1),
+ 1,FE_DGP<dim>(0),1);
+
+
+ DoFHandler<dim> stokes_dof_handler(triangulation);
+ std::vector<unsigned int> stokes_sub_blocks (1+1,0);
+ stokes_sub_blocks[1] = 1;
+ stokes_dof_handler.distribute_dofs (stokes_fe);
+ DoFRenumbering::component_wise (stokes_dof_handler, stokes_sub_blocks);
+
+ std::vector<types::global_dof_index> stokes_dofs_per_block (2);
+ DoFTools::count_dofs_per_block (stokes_dof_handler, stokes_dofs_per_block,
+ stokes_sub_blocks);
+
+ const unsigned int n_u = stokes_dofs_per_block[0],
+ n_p = stokes_dofs_per_block[1];
+
+ std::vector<IndexSet> stokes_partitioning, stokes_relevant_partitioning;
+
+ IndexSet stokes_index_set = stokes_dof_handler.locally_owned_dofs();
+ stokes_partitioning.push_back(stokes_index_set.get_view(0,n_u));
+ stokes_partitioning.push_back(stokes_index_set.get_view(n_u,n_u+n_p));
+
+ IndexSet stokes_relevant_set;
+ DoFTools::extract_locally_relevant_dofs (stokes_dof_handler,
+ stokes_relevant_set);
+ stokes_relevant_partitioning.push_back(stokes_relevant_set.get_view(0,n_u));
+ stokes_relevant_partitioning.push_back(stokes_relevant_set.get_view(n_u,n_u+n_p));
+
+ stokes_relevant_set.print(deallog.get_file_stream());
+
+ ConstraintMatrix cm(stokes_relevant_set);
+
+ DoFTools::make_hanging_node_constraints (stokes_dof_handler,
+ cm);
+
+ //boundary conditions ?
+ cm.close();
+
+
+ BlockCompressedSimpleSparsityPattern sp(stokes_relevant_partitioning);
+
+ Table<2,DoFTools::Coupling> coupling (1+1, 1+1);
+ coupling[0][0] = DoFTools::always;
+ coupling[1][1] = DoFTools::always;
+ coupling[0][1] = DoFTools::always;
+
+ DoFTools::make_sparsity_pattern (stokes_dof_handler,
+ coupling, sp,
+ cm, false,
+ Utilities::MPI::this_mpi_process(MPI_COMM_WORLD));
+
+ SparsityTools::distribute_sparsity_pattern(sp,
+ stokes_dof_handler.n_locally_owned_dofs_per_processor(),
+ MPI_COMM_WORLD, stokes_relevant_set);
+
+
+ sp.compress();
+
+ typename LA::MPI::BlockSparseMatrix stokes_matrix;
+ stokes_matrix.reinit (stokes_partitioning, sp, MPI_COMM_WORLD);
+
+ stokes_matrix.print(deallog.get_file_stream());
+
+
+ // done
+ if (myid==0)
+ deallog << "OK" << std::endl;
+}
+
+template <int dim>
+void test_LA_Trilinos ()
+{
+ typedef LA_Trilinos LA;
+
+ unsigned int myid = Utilities::MPI::this_mpi_process (MPI_COMM_WORLD);
+ unsigned int numproc = Utilities::MPI::n_mpi_processes (MPI_COMM_WORLD);
+
+ if (myid==0)
+ deallog << "numproc=" << numproc << std::endl;
+
+
+ parallel::distributed::Triangulation<dim>
+ triangulation (MPI_COMM_WORLD,
+ typename Triangulation<dim>::MeshSmoothing
+ (Triangulation<dim>::smoothing_on_refinement |
+ Triangulation<dim>::smoothing_on_coarsening));
+
+ GridGenerator::hyper_cube(triangulation);
+ triangulation.refine_global(2);
+
+ const FESystem<dim> stokes_fe(FE_Q<dim>(1),
+ 1,FE_DGP<dim>(0),1);
+
+
+ DoFHandler<dim> stokes_dof_handler(triangulation);
+ std::vector<unsigned int> stokes_sub_blocks (1+1,0);
+ stokes_sub_blocks[1] = 1;
+ stokes_dof_handler.distribute_dofs (stokes_fe);
+ DoFRenumbering::component_wise (stokes_dof_handler, stokes_sub_blocks);
+
+ std::vector<types::global_dof_index> stokes_dofs_per_block (2);
+ DoFTools::count_dofs_per_block (stokes_dof_handler, stokes_dofs_per_block,
+ stokes_sub_blocks);
+
+ const unsigned int n_u = stokes_dofs_per_block[0],
+ n_p = stokes_dofs_per_block[1];
+
+ std::vector<IndexSet> stokes_partitioning, stokes_relevant_partitioning;
+
+ IndexSet stokes_index_set = stokes_dof_handler.locally_owned_dofs();
+ stokes_partitioning.push_back(stokes_index_set.get_view(0,n_u));
+ stokes_partitioning.push_back(stokes_index_set.get_view(n_u,n_u+n_p));
+
+ IndexSet stokes_relevant_set;
+ DoFTools::extract_locally_relevant_dofs (stokes_dof_handler,
+ stokes_relevant_set);
+ stokes_relevant_partitioning.push_back(stokes_relevant_set.get_view(0,n_u));
+ stokes_relevant_partitioning.push_back(stokes_relevant_set.get_view(n_u,n_u+n_p));
+ stokes_relevant_set.print(deallog.get_file_stream());
+
+ ConstraintMatrix cm(stokes_relevant_set);
+
+ DoFTools::make_hanging_node_constraints (stokes_dof_handler,
+ cm);
+
+ //boundary conditions ?
+ cm.close();
+ TrilinosWrappers::BlockSparsityPattern
+ //typename LA::MPI::CompressedBlockSparsityPattern
+ sp(stokes_partitioning, MPI_COMM_WORLD);
+
+
+ Table<2,DoFTools::Coupling> coupling (1+1, 1+1);
+
+ coupling[0][0] = DoFTools::always;
+ coupling[1][1] = DoFTools::always;
+ coupling[0][1] = DoFTools::always;
+
+ DoFTools::make_sparsity_pattern (stokes_dof_handler,
+ coupling, sp,
+ cm, false,
+ Utilities::MPI::
+ this_mpi_process(MPI_COMM_WORLD));
+
+ sp.compress();
+
+ //sp.print(deallog.get_file_stream());
+
+ LA::MPI::BlockSparseMatrix stokes_matrix;
+ stokes_matrix.reinit (sp);
+
+ stokes_matrix.print(deallog.get_file_stream());
+
+
+ // done
+ if (myid==0)
+ deallog << "OK" << std::endl;
+}
+
+
+int main (int argc, char **argv)
+{
+ Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv, 1);
+ MPILogInitAll log(__FILE__);
+
+ {
+ deallog.push("PETSc");
+ test<LA_PETSc,2>();
+ deallog.pop();
+ deallog.push("Trilinos");
+ test<LA_Trilinos,2>();
+ deallog.pop();
+ deallog.push("TrilinosAlt");
+ test_LA_Trilinos<2>();
+ deallog.pop();
+ }
+
+ // compile, don't run
+ //if (myid==9999)
+ // test<LA_Dummy>();
+
+
+}
--- /dev/null
+
+DEAL:0:PETSc::numproc=2
+{[0,17], [21,22], [25,34], [37,38]}
+Block (0, 0)
+(0,0) 0.00000
+(0,1) 0.00000
+(0,2) 0.00000
+(0,3) 0.00000
+(1,0) 0.00000
+(1,1) 0.00000
+(1,2) 0.00000
+(1,3) 0.00000
+(1,4) 0.00000
+(1,5) 0.00000
+(2,0) 0.00000
+(2,1) 0.00000
+(2,2) 0.00000
+(2,3) 0.00000
+(2,6) 0.00000
+(2,7) 0.00000
+(3,0) 0.00000
+(3,1) 0.00000
+(3,2) 0.00000
+(3,3) 0.00000
+(3,4) 0.00000
+(3,5) 0.00000
+(3,6) 0.00000
+(3,7) 0.00000
+(3,8) 0.00000
+(4,1) 0.00000
+(4,3) 0.00000
+(4,4) 0.00000
+(4,5) 0.00000
+(4,9) 0.00000
+(4,10) 0.00000
+(5,1) 0.00000
+(5,3) 0.00000
+(5,4) 0.00000
+(5,5) 0.00000
+(5,7) 0.00000
+(5,8) 0.00000
+(5,9) 0.00000
+(5,10) 0.00000
+(5,13) 0.00000
+(6,2) 0.00000
+(6,3) 0.00000
+(6,6) 0.00000
+(6,7) 0.00000
+(6,15) 0.00000
+(6,16) 0.00000
+(7,2) 0.00000
+(7,3) 0.00000
+(7,5) 0.00000
+(7,6) 0.00000
+(7,7) 0.00000
+(7,8) 0.00000
+(7,15) 0.00000
+(7,16) 0.00000
+(7,17) 0.00000
+(8,3) 0.00000
+(8,5) 0.00000
+(8,7) 0.00000
+(8,8) 0.00000
+(8,10) 0.00000
+(8,13) 0.00000
+(8,16) 0.00000
+(8,17) 0.00000
+(8,21) 0.00000
+(9,4) 0.00000
+(9,5) 0.00000
+(9,9) 0.00000
+(9,10) 0.00000
+(9,11) 0.00000
+(9,12) 0.00000
+(10,4) 0.00000
+(10,5) 0.00000
+(10,8) 0.00000
+(10,9) 0.00000
+(10,10) 0.00000
+(10,11) 0.00000
+(10,12) 0.00000
+(10,13) 0.00000
+(10,14) 0.00000
+(11,9) 0.00000
+(11,10) 0.00000
+(11,11) 0.00000
+(11,12) 0.00000
+(12,9) 0.00000
+(12,10) 0.00000
+(12,11) 0.00000
+(12,12) 0.00000
+(12,13) 0.00000
+(12,14) 0.00000
+(13,5) 0.00000
+(13,8) 0.00000
+(13,10) 0.00000
+(13,12) 0.00000
+(13,13) 0.00000
+(13,14) 0.00000
+(13,17) 0.00000
+(13,21) 0.00000
+(13,22) 0.00000
+(14,10) 0.00000
+(14,12) 0.00000
+(14,13) 0.00000
+(14,14) 0.00000
+(14,21) 0.00000
+(14,22) 0.00000
+Block (0, 1)
+(0,0) 0.00000
+(1,0) 0.00000
+(1,1) 0.00000
+(2,0) 0.00000
+(2,2) 0.00000
+(3,0) 0.00000
+(3,1) 0.00000
+(3,2) 0.00000
+(3,3) 0.00000
+(4,1) 0.00000
+(4,4) 0.00000
+(5,1) 0.00000
+(5,3) 0.00000
+(5,4) 0.00000
+(5,6) 0.00000
+(6,2) 0.00000
+(6,8) 0.00000
+(7,2) 0.00000
+(7,3) 0.00000
+(7,8) 0.00000
+(7,9) 0.00000
+(8,3) 0.00000
+(8,6) 0.00000
+(8,9) 0.00000
+(8,12) 0.00000
+(9,4) 0.00000
+(9,5) 0.00000
+(10,4) 0.00000
+(10,5) 0.00000
+(10,6) 0.00000
+(10,7) 0.00000
+(11,5) 0.00000
+(12,5) 0.00000
+(12,7) 0.00000
+(13,6) 0.00000
+(13,7) 0.00000
+(13,12) 0.00000
+(13,13) 0.00000
+(14,7) 0.00000
+(14,13) 0.00000
+Block (1, 0)
+Block (1, 1)
+(0,0) 0.00000
+(1,1) 0.00000
+(2,2) 0.00000
+(3,3) 0.00000
+(4,4) 0.00000
+(5,5) 0.00000
+(6,6) 0.00000
+(7,7) 0.00000
+DEAL:0:PETSc::OK
+DEAL:0:Trilinos::numproc=2
+{[0,17], [21,22], [25,34], [37,38]}
+Block (0, 0)
+(0,0) 0.00000
+(0,1) 0.00000
+(0,2) 0.00000
+(0,3) 0.00000
+(1,0) 0.00000
+(1,1) 0.00000
+(1,2) 0.00000
+(1,3) 0.00000
+(1,4) 0.00000
+(1,5) 0.00000
+(2,0) 0.00000
+(2,1) 0.00000
+(2,2) 0.00000
+(2,3) 0.00000
+(2,6) 0.00000
+(2,7) 0.00000
+(3,0) 0.00000
+(3,1) 0.00000
+(3,2) 0.00000
+(3,3) 0.00000
+(3,4) 0.00000
+(3,5) 0.00000
+(3,6) 0.00000
+(3,7) 0.00000
+(3,8) 0.00000
+(4,1) 0.00000
+(4,3) 0.00000
+(4,4) 0.00000
+(4,5) 0.00000
+(4,9) 0.00000
+(4,10) 0.00000
+(5,1) 0.00000
+(5,3) 0.00000
+(5,4) 0.00000
+(5,5) 0.00000
+(5,7) 0.00000
+(5,8) 0.00000
+(5,9) 0.00000
+(5,10) 0.00000
+(5,13) 0.00000
+(6,2) 0.00000
+(6,3) 0.00000
+(6,6) 0.00000
+(6,7) 0.00000
+(6,15) 0.00000
+(6,16) 0.00000
+(7,2) 0.00000
+(7,3) 0.00000
+(7,5) 0.00000
+(7,6) 0.00000
+(7,7) 0.00000
+(7,8) 0.00000
+(7,15) 0.00000
+(7,16) 0.00000
+(7,17) 0.00000
+(8,3) 0.00000
+(8,5) 0.00000
+(8,7) 0.00000
+(8,8) 0.00000
+(8,10) 0.00000
+(8,13) 0.00000
+(8,16) 0.00000
+(8,17) 0.00000
+(8,21) 0.00000
+(9,4) 0.00000
+(9,5) 0.00000
+(9,9) 0.00000
+(9,10) 0.00000
+(9,11) 0.00000
+(9,12) 0.00000
+(10,4) 0.00000
+(10,5) 0.00000
+(10,8) 0.00000
+(10,9) 0.00000
+(10,10) 0.00000
+(10,11) 0.00000
+(10,12) 0.00000
+(10,13) 0.00000
+(10,14) 0.00000
+(11,9) 0.00000
+(11,10) 0.00000
+(11,11) 0.00000
+(11,12) 0.00000
+(12,9) 0.00000
+(12,10) 0.00000
+(12,11) 0.00000
+(12,12) 0.00000
+(12,13) 0.00000
+(12,14) 0.00000
+(13,5) 0.00000
+(13,8) 0.00000
+(13,10) 0.00000
+(13,12) 0.00000
+(13,13) 0.00000
+(13,14) 0.00000
+(13,17) 0.00000
+(13,21) 0.00000
+(13,22) 0.00000
+(14,10) 0.00000
+(14,12) 0.00000
+(14,13) 0.00000
+(14,14) 0.00000
+(14,21) 0.00000
+(14,22) 0.00000
+Block (0, 1)
+(0,0) 0.00000
+(1,0) 0.00000
+(1,1) 0.00000
+(2,0) 0.00000
+(2,2) 0.00000
+(3,0) 0.00000
+(3,1) 0.00000
+(3,2) 0.00000
+(3,3) 0.00000
+(4,1) 0.00000
+(4,4) 0.00000
+(5,1) 0.00000
+(5,3) 0.00000
+(5,4) 0.00000
+(5,6) 0.00000
+(6,2) 0.00000
+(6,8) 0.00000
+(7,2) 0.00000
+(7,3) 0.00000
+(7,8) 0.00000
+(7,9) 0.00000
+(8,3) 0.00000
+(8,6) 0.00000
+(8,9) 0.00000
+(8,12) 0.00000
+(9,4) 0.00000
+(9,5) 0.00000
+(10,4) 0.00000
+(10,5) 0.00000
+(10,6) 0.00000
+(10,7) 0.00000
+(11,5) 0.00000
+(12,5) 0.00000
+(12,7) 0.00000
+(13,6) 0.00000
+(13,7) 0.00000
+(13,12) 0.00000
+(13,13) 0.00000
+(14,7) 0.00000
+(14,13) 0.00000
+Block (1, 0)
+Block (1, 1)
+(0,0) 0.00000
+(1,1) 0.00000
+(2,2) 0.00000
+(3,3) 0.00000
+(4,4) 0.00000
+(5,5) 0.00000
+(6,6) 0.00000
+(7,7) 0.00000
+DEAL:0:Trilinos::OK
+DEAL:0:TrilinosAlt::numproc=2
+{[0,17], [21,22], [25,34], [37,38]}
+Block (0, 0)
+(0,0) 0.00000
+(0,1) 0.00000
+(0,2) 0.00000
+(0,3) 0.00000
+(1,0) 0.00000
+(1,1) 0.00000
+(1,2) 0.00000
+(1,3) 0.00000
+(1,4) 0.00000
+(1,5) 0.00000
+(2,0) 0.00000
+(2,1) 0.00000
+(2,2) 0.00000
+(2,3) 0.00000
+(2,6) 0.00000
+(2,7) 0.00000
+(3,0) 0.00000
+(3,1) 0.00000
+(3,2) 0.00000
+(3,3) 0.00000
+(3,4) 0.00000
+(3,5) 0.00000
+(3,6) 0.00000
+(3,7) 0.00000
+(3,8) 0.00000
+(4,1) 0.00000
+(4,3) 0.00000
+(4,4) 0.00000
+(4,5) 0.00000
+(4,9) 0.00000
+(4,10) 0.00000
+(5,1) 0.00000
+(5,3) 0.00000
+(5,4) 0.00000
+(5,5) 0.00000
+(5,7) 0.00000
+(5,8) 0.00000
+(5,9) 0.00000
+(5,10) 0.00000
+(5,13) 0.00000
+(6,2) 0.00000
+(6,3) 0.00000
+(6,6) 0.00000
+(6,7) 0.00000
+(6,15) 0.00000
+(6,16) 0.00000
+(7,2) 0.00000
+(7,3) 0.00000
+(7,5) 0.00000
+(7,6) 0.00000
+(7,7) 0.00000
+(7,8) 0.00000
+(7,15) 0.00000
+(7,16) 0.00000
+(7,17) 0.00000
+(8,3) 0.00000
+(8,5) 0.00000
+(8,7) 0.00000
+(8,8) 0.00000
+(8,10) 0.00000
+(8,13) 0.00000
+(8,16) 0.00000
+(8,17) 0.00000
+(8,21) 0.00000
+(9,4) 0.00000
+(9,5) 0.00000
+(9,9) 0.00000
+(9,10) 0.00000
+(9,11) 0.00000
+(9,12) 0.00000
+(10,4) 0.00000
+(10,5) 0.00000
+(10,8) 0.00000
+(10,9) 0.00000
+(10,10) 0.00000
+(10,11) 0.00000
+(10,12) 0.00000
+(10,13) 0.00000
+(10,14) 0.00000
+(11,9) 0.00000
+(11,10) 0.00000
+(11,11) 0.00000
+(11,12) 0.00000
+(12,9) 0.00000
+(12,10) 0.00000
+(12,11) 0.00000
+(12,12) 0.00000
+(12,13) 0.00000
+(12,14) 0.00000
+(13,5) 0.00000
+(13,8) 0.00000
+(13,10) 0.00000
+(13,12) 0.00000
+(13,13) 0.00000
+(13,14) 0.00000
+(13,17) 0.00000
+(13,21) 0.00000
+(13,22) 0.00000
+(14,10) 0.00000
+(14,12) 0.00000
+(14,13) 0.00000
+(14,14) 0.00000
+(14,21) 0.00000
+(14,22) 0.00000
+Block (0, 1)
+(0,0) 0.00000
+(1,0) 0.00000
+(1,1) 0.00000
+(2,0) 0.00000
+(2,2) 0.00000
+(3,0) 0.00000
+(3,1) 0.00000
+(3,2) 0.00000
+(3,3) 0.00000
+(4,1) 0.00000
+(4,4) 0.00000
+(5,1) 0.00000
+(5,3) 0.00000
+(5,4) 0.00000
+(5,6) 0.00000
+(6,2) 0.00000
+(6,8) 0.00000
+(7,2) 0.00000
+(7,3) 0.00000
+(7,8) 0.00000
+(7,9) 0.00000
+(8,3) 0.00000
+(8,6) 0.00000
+(8,9) 0.00000
+(8,12) 0.00000
+(9,4) 0.00000
+(9,5) 0.00000
+(10,4) 0.00000
+(10,5) 0.00000
+(10,6) 0.00000
+(10,7) 0.00000
+(11,5) 0.00000
+(12,5) 0.00000
+(12,7) 0.00000
+(13,6) 0.00000
+(13,7) 0.00000
+(13,12) 0.00000
+(13,13) 0.00000
+(14,7) 0.00000
+(14,13) 0.00000
+Block (1, 0)
+Block (1, 1)
+(0,0) 0.00000
+(1,1) 0.00000
+(2,2) 0.00000
+(3,3) 0.00000
+(4,4) 0.00000
+(5,5) 0.00000
+(6,6) 0.00000
+(7,7) 0.00000
+DEAL:0:TrilinosAlt::OK
+
+{[2,3], [5,8], 10, [12,24], [27,28], [31,40]}
+Block (0, 0)
+(15,6) 0.00000
+(15,7) 0.00000
+(15,15) 0.00000
+(15,16) 0.00000
+(15,18) 0.00000
+(15,19) 0.00000
+(16,6) 0.00000
+(16,7) 0.00000
+(16,8) 0.00000
+(16,15) 0.00000
+(16,16) 0.00000
+(16,17) 0.00000
+(16,18) 0.00000
+(16,19) 0.00000
+(16,20) 0.00000
+(17,7) 0.00000
+(17,8) 0.00000
+(17,13) 0.00000
+(17,16) 0.00000
+(17,17) 0.00000
+(17,19) 0.00000
+(17,20) 0.00000
+(17,21) 0.00000
+(17,23) 0.00000
+(18,15) 0.00000
+(18,16) 0.00000
+(18,18) 0.00000
+(18,19) 0.00000
+(19,15) 0.00000
+(19,16) 0.00000
+(19,17) 0.00000
+(19,18) 0.00000
+(19,19) 0.00000
+(19,20) 0.00000
+(20,16) 0.00000
+(20,17) 0.00000
+(20,19) 0.00000
+(20,20) 0.00000
+(20,21) 0.00000
+(20,23) 0.00000
+(21,8) 0.00000
+(21,13) 0.00000
+(21,14) 0.00000
+(21,17) 0.00000
+(21,20) 0.00000
+(21,21) 0.00000
+(21,22) 0.00000
+(21,23) 0.00000
+(21,24) 0.00000
+(22,13) 0.00000
+(22,14) 0.00000
+(22,21) 0.00000
+(22,22) 0.00000
+(22,23) 0.00000
+(22,24) 0.00000
+(23,17) 0.00000
+(23,20) 0.00000
+(23,21) 0.00000
+(23,22) 0.00000
+(23,23) 0.00000
+(23,24) 0.00000
+(24,21) 0.00000
+(24,22) 0.00000
+(24,23) 0.00000
+(24,24) 0.00000
+Block (0, 1)
+(15,8) 0.00000
+(15,10) 0.00000
+(16,8) 0.00000
+(16,9) 0.00000
+(16,10) 0.00000
+(16,11) 0.00000
+(17,9) 0.00000
+(17,11) 0.00000
+(17,12) 0.00000
+(17,14) 0.00000
+(18,10) 0.00000
+(19,10) 0.00000
+(19,11) 0.00000
+(20,11) 0.00000
+(20,14) 0.00000
+(21,12) 0.00000
+(21,13) 0.00000
+(21,14) 0.00000
+(21,15) 0.00000
+(22,13) 0.00000
+(22,15) 0.00000
+(23,14) 0.00000
+(23,15) 0.00000
+(24,15) 0.00000
+Block (1, 0)
+Block (1, 1)
+(8,8) 0.00000
+(9,9) 0.00000
+(10,10) 0.00000
+(11,11) 0.00000
+(12,12) 0.00000
+(13,13) 0.00000
+(14,14) 0.00000
+(15,15) 0.00000
+{[2,3], [5,8], 10, [12,24], [27,28], [31,40]}
+Block (0, 0)
+(15,15) 0.00000
+(15,16) 0.00000
+(15,18) 0.00000
+(15,19) 0.00000
+(15,6) 0.00000
+(15,7) 0.00000
+(16,15) 0.00000
+(16,16) 0.00000
+(16,17) 0.00000
+(16,18) 0.00000
+(16,19) 0.00000
+(16,20) 0.00000
+(16,6) 0.00000
+(16,7) 0.00000
+(16,8) 0.00000
+(17,16) 0.00000
+(17,17) 0.00000
+(17,19) 0.00000
+(17,20) 0.00000
+(17,21) 0.00000
+(17,23) 0.00000
+(17,7) 0.00000
+(17,8) 0.00000
+(17,13) 0.00000
+(18,15) 0.00000
+(18,16) 0.00000
+(18,18) 0.00000
+(18,19) 0.00000
+(19,15) 0.00000
+(19,16) 0.00000
+(19,17) 0.00000
+(19,18) 0.00000
+(19,19) 0.00000
+(19,20) 0.00000
+(20,16) 0.00000
+(20,17) 0.00000
+(20,19) 0.00000
+(20,20) 0.00000
+(20,21) 0.00000
+(20,23) 0.00000
+(21,17) 0.00000
+(21,20) 0.00000
+(21,21) 0.00000
+(21,22) 0.00000
+(21,23) 0.00000
+(21,24) 0.00000
+(21,8) 0.00000
+(21,13) 0.00000
+(21,14) 0.00000
+(22,21) 0.00000
+(22,22) 0.00000
+(22,23) 0.00000
+(22,24) 0.00000
+(22,13) 0.00000
+(22,14) 0.00000
+(23,17) 0.00000
+(23,20) 0.00000
+(23,21) 0.00000
+(23,22) 0.00000
+(23,23) 0.00000
+(23,24) 0.00000
+(24,21) 0.00000
+(24,22) 0.00000
+(24,23) 0.00000
+(24,24) 0.00000
+Block (0, 1)
+(15,8) 0.00000
+(15,10) 0.00000
+(16,8) 0.00000
+(16,9) 0.00000
+(16,10) 0.00000
+(16,11) 0.00000
+(17,9) 0.00000
+(17,11) 0.00000
+(17,12) 0.00000
+(17,14) 0.00000
+(18,10) 0.00000
+(19,10) 0.00000
+(19,11) 0.00000
+(20,11) 0.00000
+(20,14) 0.00000
+(21,12) 0.00000
+(21,13) 0.00000
+(21,14) 0.00000
+(21,15) 0.00000
+(22,13) 0.00000
+(22,15) 0.00000
+(23,14) 0.00000
+(23,15) 0.00000
+(24,15) 0.00000
+Block (1, 0)
+Block (1, 1)
+(8,8) 0.00000
+(9,9) 0.00000
+(10,10) 0.00000
+(11,11) 0.00000
+(12,12) 0.00000
+(13,13) 0.00000
+(14,14) 0.00000
+(15,15) 0.00000
+{[2,3], [5,8], 10, [12,24], [27,28], [31,40]}
+Block (0, 0)
+(15,15) 0.00000
+(15,16) 0.00000
+(15,18) 0.00000
+(15,19) 0.00000
+(15,6) 0.00000
+(15,7) 0.00000
+(16,15) 0.00000
+(16,16) 0.00000
+(16,17) 0.00000
+(16,18) 0.00000
+(16,19) 0.00000
+(16,20) 0.00000
+(16,6) 0.00000
+(16,7) 0.00000
+(16,8) 0.00000
+(17,16) 0.00000
+(17,17) 0.00000
+(17,19) 0.00000
+(17,20) 0.00000
+(17,21) 0.00000
+(17,23) 0.00000
+(17,7) 0.00000
+(17,8) 0.00000
+(17,13) 0.00000
+(18,15) 0.00000
+(18,16) 0.00000
+(18,18) 0.00000
+(18,19) 0.00000
+(19,15) 0.00000
+(19,16) 0.00000
+(19,17) 0.00000
+(19,18) 0.00000
+(19,19) 0.00000
+(19,20) 0.00000
+(20,16) 0.00000
+(20,17) 0.00000
+(20,19) 0.00000
+(20,20) 0.00000
+(20,21) 0.00000
+(20,23) 0.00000
+(21,17) 0.00000
+(21,20) 0.00000
+(21,21) 0.00000
+(21,22) 0.00000
+(21,23) 0.00000
+(21,24) 0.00000
+(21,8) 0.00000
+(21,13) 0.00000
+(21,14) 0.00000
+(22,21) 0.00000
+(22,22) 0.00000
+(22,23) 0.00000
+(22,24) 0.00000
+(22,13) 0.00000
+(22,14) 0.00000
+(23,17) 0.00000
+(23,20) 0.00000
+(23,21) 0.00000
+(23,22) 0.00000
+(23,23) 0.00000
+(23,24) 0.00000
+(24,21) 0.00000
+(24,22) 0.00000
+(24,23) 0.00000
+(24,24) 0.00000
+Block (0, 1)
+(15,8) 0.00000
+(15,10) 0.00000
+(16,8) 0.00000
+(16,9) 0.00000
+(16,10) 0.00000
+(16,11) 0.00000
+(17,9) 0.00000
+(17,11) 0.00000
+(17,12) 0.00000
+(17,14) 0.00000
+(18,10) 0.00000
+(19,10) 0.00000
+(19,11) 0.00000
+(20,11) 0.00000
+(20,14) 0.00000
+(21,12) 0.00000
+(21,13) 0.00000
+(21,14) 0.00000
+(21,15) 0.00000
+(22,13) 0.00000
+(22,15) 0.00000
+(23,14) 0.00000
+(23,15) 0.00000
+(24,15) 0.00000
+Block (1, 0)
+Block (1, 1)
+(8,8) 0.00000
+(9,9) 0.00000
+(10,10) 0.00000
+(11,11) 0.00000
+(12,12) 0.00000
+(13,13) 0.00000
+(14,14) 0.00000
+(15,15) 0.00000
+