From ad4f882f8d6d33f6ee652667073dcc8ee3d87b5f Mon Sep 17 00:00:00 2001 From: Alistair Bentley Date: Tue, 27 Oct 2015 11:14:07 -0400 Subject: [PATCH] Implemented BDM_grad_grad in 3D * Added second derivative terms to polynomials_bdm class in 3D * Added tests and output to verify 2nd derivatives are returning proper values * I carefully checked the output file to confirm the correct output is being produced --- doc/news/changes.h | 8 ++- include/deal.II/base/polynomials_bdm.h | 1 - source/base/polynomials_bdm.cc | 85 +++++++++++++++++++++- tests/base/polynomials_bdm_02.cc | 98 ++++++++++++++++++++++++++ tests/base/polynomials_bdm_02.output | 34 +++++++++ 5 files changed, 223 insertions(+), 3 deletions(-) create mode 100644 tests/base/polynomials_bdm_02.cc create mode 100644 tests/base/polynomials_bdm_02.output diff --git a/doc/news/changes.h b/doc/news/changes.h index 8e7de962b7..a36b530aea 100644 --- a/doc/news/changes.h +++ b/doc/news/changes.h @@ -159,6 +159,12 @@ inconvenience this causes.

General

    + +
  1. New: 2nd derivatives are implemented for polynomials_BDM in 3D. +
    + (Alistair Bentley, 2015/10/27) +
  2. +
  3. New: Preliminary support for parallel, adaptive, geometric multigrid is now in place with changes to MGConstrainedDoFs (many new functions), MGTransfer, MGTools::extract_inner_interface_dofs, MGTransferPrebuilt, @@ -398,7 +404,7 @@ inconvenience this causes. (Alistair Bentley, 2015/10/24)
  4. -
  5. New: Triangulation::set_all_manifold_ids_on_boundary(boundary_id, manifold_id) +
  6. New: Triangulation::set_all_manifold_ids_on_boundary(boundary_id, manifold_id) which sets the manifold_id for all parts of the boundary with a given boundary_id.
    (Alberto Sartori, 2015/10/22) diff --git a/include/deal.II/base/polynomials_bdm.h b/include/deal.II/base/polynomials_bdm.h index ed1b51cd07..9a24aa2eb5 100644 --- a/include/deal.II/base/polynomials_bdm.h +++ b/include/deal.II/base/polynomials_bdm.h @@ -92,7 +92,6 @@ DEAL_II_NAMESPACE_OPEN * * * - * @todo Second derivatives in 3D are missing. * * @ingroup Polynomials * @author Guido Kanschat diff --git a/source/base/polynomials_bdm.cc b/source/base/polynomials_bdm.cc index 3653da62f1..cdf32d22f0 100644 --- a/source/base/polynomials_bdm.cc +++ b/source/base/polynomials_bdm.cc @@ -244,7 +244,90 @@ PolynomialsBDM::compute (const Point &unit_point, } if (grad_grads.size() != 0) { - Assert(false,ExcNotImplemented()); + grad_grads[start][0][0][0] = 0.; + grad_grads[start][0][0][1] = monovali[1][2]*monovalk[2][0]; + grad_grads[start][0][0][2] = monovali[1][1]*monovalk[2][1]; + grad_grads[start][0][1][0] = monovali[1][2]*monovalk[2][0]; + grad_grads[start][0][1][1] = unit_point(0)*monovali[1][3]*monovalk[2][0]; + grad_grads[start][0][1][2] = unit_point(0)*monovali[1][2]*monovalk[2][1]; + grad_grads[start][0][2][0] = monovali[1][1]*monovalk[2][1]; + grad_grads[start][0][2][1] = unit_point(0)*monovali[1][2]*monovalk[2][1]; + grad_grads[start][0][2][2] = unit_point(0)*monovali[1][1]*monovalk[2][2]; + grad_grads[start][1][0][0] = 0.; + grad_grads[start][1][0][1] = 0.; + grad_grads[start][1][0][2] = 0.; + grad_grads[start][1][1][0] = 0.; + grad_grads[start][1][1][1] = -monovali[1][2]*monovalk[2][0]; + grad_grads[start][1][1][2] = -monovali[1][1]*monovalk[2][1]; + grad_grads[start][1][2][0] = 0.; + grad_grads[start][1][2][1] = -monovali[1][1]*monovalk[2][1]; + grad_grads[start][1][2][2] = -monovali[1][0]*monovalk[2][2]; + grad_grads[start][2][0][0] = 0.; + grad_grads[start][2][0][1] = 0.; + grad_grads[start][2][0][2] = 0.; + grad_grads[start][2][1][0] = 0.; + grad_grads[start][2][1][1] = 0.; + grad_grads[start][2][1][2] = 0.; + grad_grads[start][2][2][0] = 0.; + grad_grads[start][2][2][1] = 0.; + grad_grads[start][2][2][2] = 0.; + + grad_grads[start+1][0][0][0] = 0.; + grad_grads[start+1][0][0][1] = 0.; + grad_grads[start+1][0][0][2] = 0.; + grad_grads[start+1][0][1][0] = 0.; + grad_grads[start+1][0][1][1] = 0.; + grad_grads[start+1][0][1][2] = 0.; + grad_grads[start+1][0][2][0] = 0.; + grad_grads[start+1][0][2][1] = 0.; + grad_grads[start+1][0][2][2] = 0.; + grad_grads[start+1][1][0][0] = unit_point(1)*monovali[2][1]*monovalk[0][2]; + grad_grads[start+1][1][0][1] = monovali[2][1]*monovalk[0][1]; + grad_grads[start+1][1][0][2] = unit_point(1)*monovali[2][2]*monovalk[0][1]; + grad_grads[start+1][1][1][0] = monovalk[0][1]*monovali[2][1]; + grad_grads[start+1][1][1][1] = 0.; + grad_grads[start+1][1][1][2] = monovalk[0][0]*monovali[2][2]; + grad_grads[start+1][1][2][0] = unit_point(1)*monovalk[0][1]*monovali[2][2]; + grad_grads[start+1][1][2][1] = monovalk[0][0]*monovali[2][2]; + grad_grads[start+1][1][2][2] = unit_point(1)*monovalk[0][0]*monovali[2][3]; + grad_grads[start+1][2][0][0] = -monovalk[0][2]*monovali[2][0]; + grad_grads[start+1][2][0][1] = 0.; + grad_grads[start+1][2][0][2] = -monovalk[0][1]*monovali[2][1]; + grad_grads[start+1][2][1][0] = 0.; + grad_grads[start+1][2][1][1] = 0.; + grad_grads[start+1][2][1][2] = 0.; + grad_grads[start+1][2][2][0] = -monovalk[0][1]*monovali[2][1]; + grad_grads[start+1][2][2][1] = 0.; + grad_grads[start+1][2][2][2] = -monovalk[0][0]*monovali[2][2]; + + grad_grads[start+2][0][0][0] = -monovali[0][2]*monovalk[1][0]; + grad_grads[start+2][0][0][1] = -monovali[0][1]*monovalk[1][1]; + grad_grads[start+2][0][0][2] = 0.; + grad_grads[start+2][0][1][0] = -monovali[0][1]*monovalk[1][1]; + grad_grads[start+2][0][1][1] = -monovali[0][0]*monovalk[1][2]; + grad_grads[start+2][0][1][2] = 0.; + grad_grads[start+2][0][2][0] = 0.; + grad_grads[start+2][0][2][1] = 0.; + grad_grads[start+2][0][2][2] = 0.; + grad_grads[start+2][1][0][0] = 0.; + grad_grads[start+2][1][0][1] = 0.; + grad_grads[start+2][1][0][2] = 0.; + grad_grads[start+2][1][1][0] = 0.; + grad_grads[start+2][1][1][1] = 0.; + grad_grads[start+2][1][1][2] = 0.; + grad_grads[start+2][1][2][0] = 0.; + grad_grads[start+2][1][2][1] = 0.; + grad_grads[start+2][1][2][2] = 0.; + grad_grads[start+2][2][0][0] = unit_point(2)*monovali[0][3]*monovalk[1][0]; + grad_grads[start+2][2][0][1] = unit_point(2)*monovali[0][2]*monovalk[1][1]; + grad_grads[start+2][2][0][2] = monovali[0][2]*monovalk[1][0]; + grad_grads[start+2][2][1][0] = unit_point(2)*monovali[0][2]*monovalk[1][1]; + grad_grads[start+2][2][1][1] = unit_point(2)*monovali[0][1]*monovalk[1][2]; + grad_grads[start+2][2][1][2] = monovali[0][1]*monovalk[1][1]; + grad_grads[start+2][2][2][0] = monovali[0][2]*monovalk[1][0]; + grad_grads[start+2][2][2][1] = monovali[0][1]*monovalk[1][1]; + grad_grads[start+2][2][2][2] = 0.; + } } Assert(start == n_pols, ExcInternalError()); diff --git a/tests/base/polynomials_bdm_02.cc b/tests/base/polynomials_bdm_02.cc new file mode 100644 index 0000000000..1ea87f7eda --- /dev/null +++ b/tests/base/polynomials_bdm_02.cc @@ -0,0 +1,98 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2010 - 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 3D polynomials_BDM grad grad at a collection of points on the unit square + +#include "../tests.h" +#include +#include +#include +#include +#include + +#include +#include +#include + +using namespace std; + +template +void plot(const PolynomialsBDM &poly) +{ + + const PolynomialSpace legendre_poly_space = Polynomials::Legendre::generate_complete_basis(poly.degree()); + + const Point<3> p0(0,0,0); + const Point<3> p1(0.25,0.5,0.75); + const Point<3> p2(0.75,0.5,0.25); + const Point<3> p3(0.75,0.25,0.5); + const Point<3> p4(1.0,1.0,1.0); + + std::vector > points; + points.push_back(p0); + points.push_back(p1); + points.push_back(p2); + points.push_back(p3); + points.push_back(p4); + + std::vector > values; + std::vector > grads; + std::vector > grads2(poly.n()); + std::vector > thirds; + std::vector > fourths; + + const unsigned int n_sub = legendre_poly_space.n(); + + for (unsigned int k=0; k' << std::endl; + + unsigned int start = dim*n_sub; + + deallog << "BDM" << poly.degree() << '<' << dim << '>' + << points[k] << std::endl; + poly.compute(points[k], values, grads, grads2, thirds, fourths); + + for (unsigned int i=0; i p31(1); + PolynomialsBDM<3> p32(2); + PolynomialsBDM<3> p33(3); + + plot(p31); + plot(p32); + plot(p33); +} diff --git a/tests/base/polynomials_bdm_02.output b/tests/base/polynomials_bdm_02.output new file mode 100644 index 0000000000..a0f2788bed --- /dev/null +++ b/tests/base/polynomials_bdm_02.output @@ -0,0 +1,34 @@ + +DEAL::BDM1<3> +DEAL::BDM1<3>0.00 0.00 0.00 +DEAL:: 0 0 1.00 0 0 0 1.00 0 0 0 0 0 0 0 -1.00 0 -1.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00 0 1.00 0 0 0 0 0 0 0 -1.00 0 0 0 -1.00 0 0 0 -1.00 0 -1.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00 0 1.00 0 0 2.00 0 2.00 0 0 0 0 0 0 0 0 0 -2.00 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 2.00 0 2.00 0 0 0 0 0 0 0 0 0 -2.00 -2.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.00 0 0 0 2.00 0 0 +DEAL::BDM1<3>0.250 0.500 0.750 +DEAL:: 0 0 1.00 0 0 0 1.00 0 0 0 0 0 0 0 -1.00 0 -1.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00 0 1.00 0 0 0 0 0 0 0 -1.00 0 0 0 -1.00 0 0 0 -1.00 0 -1.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00 0 1.00 0 0 2.00 0 2.00 0 0 0 0 0 0 0 0 0 -2.00 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 2.00 0 2.00 0 0 0 0 0 0 0 0 0 -2.00 -2.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.00 0 0 0 2.00 0 0 +DEAL::BDM1<3>0.750 0.500 0.250 +DEAL:: 0 0 1.00 0 0 0 1.00 0 0 0 0 0 0 0 -1.00 0 -1.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00 0 1.00 0 0 0 0 0 0 0 -1.00 0 0 0 -1.00 0 0 0 -1.00 0 -1.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00 0 1.00 0 0 2.00 0 2.00 0 0 0 0 0 0 0 0 0 -2.00 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 2.00 0 2.00 0 0 0 0 0 0 0 0 0 -2.00 -2.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.00 0 0 0 2.00 0 0 +DEAL::BDM1<3>0.750 0.250 0.500 +DEAL:: 0 0 1.00 0 0 0 1.00 0 0 0 0 0 0 0 -1.00 0 -1.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00 0 1.00 0 0 0 0 0 0 0 -1.00 0 0 0 -1.00 0 0 0 -1.00 0 -1.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00 0 1.00 0 0 2.00 0 2.00 0 0 0 0 0 0 0 0 0 -2.00 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 2.00 0 2.00 0 0 0 0 0 0 0 0 0 -2.00 -2.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.00 0 0 0 2.00 0 0 +DEAL::BDM1<3>1.00 1.00 1.00 +DEAL:: 0 0 1.00 0 0 0 1.00 0 0 0 0 0 0 0 -1.00 0 -1.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00 0 1.00 0 0 0 0 0 0 0 -1.00 0 0 0 -1.00 0 0 0 -1.00 0 -1.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00 0 1.00 0 0 2.00 0 2.00 0 0 0 0 0 0 0 0 0 -2.00 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 2.00 0 2.00 0 0 0 0 0 0 0 0 0 -2.00 -2.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.00 0 0 0 2.00 0 0 +DEAL::BDM2<3> +DEAL::BDM2<3>0.00 0.00 0.00 +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 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 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 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 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 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 +DEAL::BDM2<3>0.250 0.500 0.750 +DEAL:: 0 0 1.50 0 0 0 1.50 0 0.500 0 0 0 0 0 -1.50 0 -1.50 -1.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00 0.500 0 0.500 0 0 0 0 0 -1.50 0 -0.500 0 0 0 -0.500 0 0 0 -1.00 0 -1.00 -0.500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.50 1.00 0 1.00 0 0 1.50 1.00 1.50 0 0.500 1.00 0.500 0 0 0 0 0 -1.50 -1.00 0 -1.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.50 1.00 1.50 0 0.500 1.00 0.500 0 0 0 -1.50 0 0 0 -1.50 0 -0.500 -1.00 -0.500 0 -0.500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.50 1.00 1.50 0 0.500 1.00 0.500 0 0 3.00 0 3.00 1.50 0 0 0 0 0 0 0 0 -3.00 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 4.50 0 4.50 3.00 0 0 0 0 0 0 0 0 -4.50 -1.50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.50 0 1.50 0 0 0 1.50 0 0 +DEAL::BDM2<3>0.750 0.500 0.250 +DEAL:: 0 0 0.500 0 0 0 0.500 0 1.50 0 0 0 0 0 -0.500 0 -0.500 -1.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00 1.50 0 1.50 0 0 0 0 0 -0.500 0 -1.50 0 0 0 -1.50 0 0 0 -1.00 0 -1.00 -1.50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.500 1.00 0 1.00 0 0 0.500 1.00 0.500 0 1.50 1.00 1.50 0 0 0 0 0 -0.500 -1.00 0 -1.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.500 1.00 0.500 0 1.50 1.00 1.50 0 0 0 -0.500 0 0 0 -0.500 0 -1.50 -1.00 -1.50 0 -1.50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.500 1.00 0.500 0 1.50 1.00 1.50 0 0 3.00 0 3.00 4.50 0 0 0 0 0 0 0 0 -3.00 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.50 0 1.50 3.00 0 0 0 0 0 0 0 0 -1.50 -4.50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.50 0 4.50 0 0 0 4.50 0 0 +DEAL::BDM2<3>0.750 0.250 0.500 +DEAL:: 0 0 1.00 0 0 0 1.00 0 1.50 0 0 0 0 0 -1.00 0 -1.00 -0.500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.500 1.50 0 1.50 0 0 0 0 0 -1.00 0 -1.50 0 0 0 -1.50 0 0 0 -0.500 0 -0.500 -1.50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00 0.500 0 0.500 0 0 1.00 0.500 1.00 0 1.50 0.500 1.50 0 0 0 0 0 -1.00 -0.500 0 -0.500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00 0.500 1.00 0 1.50 0.500 1.50 0 0 0 -1.00 0 0 0 -1.00 0 -1.50 -0.500 -1.50 0 -1.50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00 0.500 1.00 0 1.50 0.500 1.50 0 0 1.50 0 1.50 4.50 0 0 0 0 0 0 0 0 -1.50 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 3.00 0 3.00 1.50 0 0 0 0 0 0 0 0 -3.00 -4.50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.00 0 4.50 0 0 0 4.50 0 0 +DEAL::BDM2<3>1.00 1.00 1.00 +DEAL:: 0 0 2.00 0 0 0 2.00 0 2.00 0 0 0 0 0 -2.00 0 -2.00 -2.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.00 2.00 0 2.00 0 0 0 0 0 -2.00 0 -2.00 0 0 0 -2.00 0 0 0 -2.00 0 -2.00 -2.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.00 2.00 0 2.00 0 0 2.00 2.00 2.00 0 2.00 2.00 2.00 0 0 0 0 0 -2.00 -2.00 0 -2.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.00 2.00 2.00 0 2.00 2.00 2.00 0 0 0 -2.00 0 0 0 -2.00 0 -2.00 -2.00 -2.00 0 -2.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.00 2.00 2.00 0 2.00 2.00 2.00 0 0 6.00 0 6.00 6.00 0 0 0 0 0 0 0 0 -6.00 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 6.00 0 6.00 6.00 0 0 0 0 0 0 0 0 -6.00 -6.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6.00 0 6.00 0 0 0 6.00 0 0 +DEAL::BDM3<3> +DEAL::BDM3<3>0.00 0.00 0.00 +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 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 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 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 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 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 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::BDM3<3>0.250 0.500 0.750 +DEAL:: 0 0 1.69 0 0 0 1.69 0 1.12 0 0 0 0 0 -1.69 0 -1.69 -2.25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.750 0.188 0 0.188 0 0 0 0 0 -1.12 0 -0.188 0 0 0 -0.188 0 0 0 -0.750 0 -0.750 -0.750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.25 0.750 0 0.750 0 0 1.12 1.50 1.12 0 0.750 1.50 0.750 0.500 0 0 0 0 -1.12 -1.50 0 -1.50 -0.500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.50 0.750 0.500 0.750 0 0.125 0.500 0.125 0 -1.12 0 -0.750 0 0 0 -0.750 0 -0.125 -0.500 -0.500 0 -0.500 -0.125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.50 0.500 1.50 0.750 0.500 0.500 0.500 0 0 2.25 0.750 2.25 1.12 0.750 0.750 0.750 0 0 0 0 0 -2.25 -0.750 0 -0.750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.69 2.25 1.69 0 1.12 2.25 1.12 0.750 0 0 -1.69 0 0 0 -1.69 0 -1.12 -0.750 -0.188 0 -0.188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.25 1.12 0.750 1.12 0 0.188 0.750 0.188 0 0 3.00 0 3.00 3.00 0 0 0 0 0 0 0 0 -3.00 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 6.75 0 6.75 9.00 0 0 0 0 0 0 0 0 -6.75 -0.750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.50 0 0.750 0 0 0 0.750 0 0 +DEAL::BDM3<3>0.750 0.500 0.250 +DEAL:: 0 0 0.188 0 0 0 0.188 0 1.12 0 0 0 0 0 -0.188 0 -0.188 -0.750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.25 1.69 0 1.69 0 0 0 0 0 -1.12 0 -1.69 0 0 0 -1.69 0 0 0 -0.750 0 -0.750 -2.25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.750 0.750 0 0.750 0 0 0.125 0.500 0.125 0 0.750 0.500 0.750 1.50 0 0 0 0 -0.125 -0.500 0 -0.500 -0.500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.500 0.750 1.50 0.750 0 1.12 1.50 1.12 0 -0.125 0 -0.750 0 0 0 -0.750 0 -1.12 -0.500 -1.50 0 -1.50 -1.12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.500 0.500 0.500 0.750 1.50 0.500 1.50 0 0 0.750 0.750 0.750 1.12 2.25 0.750 2.25 0 0 0 0 0 -0.750 -0.750 0 -0.750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.188 0.750 0.188 0 1.12 0.750 1.12 2.25 0 0 -0.188 0 0 0 -0.188 0 -1.12 -2.25 -1.69 0 -1.69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.750 1.12 2.25 1.12 0 1.69 2.25 1.69 0 0 3.00 0 3.00 9.00 0 0 0 0 0 0 0 0 -3.00 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.750 0 0.750 3.00 0 0 0 0 0 0 0 0 -0.750 -6.75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.50 0 6.75 0 0 0 6.75 0 0 +DEAL::BDM3<3>0.750 0.250 0.500 +DEAL:: 0 0 0.750 0 0 0 0.750 0 2.25 0 0 0 0 0 -0.750 0 -0.750 -0.750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.12 1.69 0 1.69 0 0 0 0 0 -2.25 0 -1.69 0 0 0 -1.69 0 0 0 -0.188 0 -0.188 -1.12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.750 0.188 0 0.188 0 0 0.500 0.500 0.500 0 1.50 0.500 1.50 0.750 0 0 0 0 -0.500 -0.500 0 -0.500 -0.125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.500 1.50 0.750 1.50 0 1.12 0.750 1.12 0 -0.500 0 -1.50 0 0 0 -1.50 0 -1.12 -0.125 -0.750 0 -0.750 -1.12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.500 0.125 0.500 1.50 0.750 0.125 0.750 0 0 0.750 0.188 0.750 2.25 1.12 0.188 1.12 0 0 0 0 0 -0.750 -0.188 0 -0.188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.750 0.750 0.750 0 2.25 0.750 2.25 1.12 0 0 -0.750 0 0 0 -0.750 0 -2.25 -1.12 -1.69 0 -1.69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.750 2.25 1.12 2.25 0 1.69 1.12 1.69 0 0 0.750 0 0.750 4.50 0 0 0 0 0 0 0 0 -0.750 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 3.00 0 3.00 3.00 0 0 0 0 0 0 0 0 -3.00 -6.75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9.00 0 6.75 0 0 0 6.75 0 0 +DEAL::BDM3<3>1.00 1.00 1.00 +DEAL:: 0 0 3.00 0 0 0 3.00 0 6.00 0 0 0 0 0 -3.00 0 -3.00 -6.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6.00 3.00 0 3.00 0 0 0 0 0 -6.00 0 -3.00 0 0 0 -3.00 0 0 0 -3.00 0 -3.00 -6.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6.00 3.00 0 3.00 0 0 2.00 4.00 2.00 0 4.00 4.00 4.00 4.00 0 0 0 0 -2.00 -4.00 0 -4.00 -2.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.00 4.00 4.00 4.00 0 2.00 4.00 2.00 0 -2.00 0 -4.00 0 0 0 -4.00 0 -2.00 -2.00 -4.00 0 -4.00 -2.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.00 2.00 4.00 4.00 4.00 2.00 4.00 0 0 6.00 3.00 6.00 6.00 6.00 3.00 6.00 0 0 0 0 0 -6.00 -3.00 0 -3.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.00 6.00 3.00 0 6.00 6.00 6.00 6.00 0 0 -3.00 0 0 0 -3.00 0 -6.00 -6.00 -3.00 0 -3.00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6.00 6.00 6.00 6.00 0 3.00 6.00 3.00 0 0 12.0 0 12.0 24.0 0 0 0 0 0 0 0 0 -12.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 12.0 0 12.0 24.0 0 0 0 0 0 0 0 0 -12.0 -12.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24.0 0 12.0 0 0 0 12.0 0 0 -- 2.39.5