From: Daniel Arndt Date: Mon, 30 Oct 2017 17:01:19 +0000 (+0100) Subject: Correctly account for inhomogeneous boundary conditions in VectorTools::project X-Git-Tag: v9.0.0-rc1~847^2~1 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8315fc9bf086826607aa8268be42c60c300c08a2;p=dealii.git Correctly account for inhomogeneous boundary conditions in VectorTools::project --- diff --git a/include/deal.II/numerics/vector_tools.templates.h b/include/deal.II/numerics/vector_tools.templates.h index b1eb9a1cfa..3694ce4be2 100644 --- a/include/deal.II/numerics/vector_tools.templates.h +++ b/include/deal.II/numerics/vector_tools.templates.h @@ -1308,8 +1308,25 @@ namespace VectorTools constraints.distribute(inhomogeneities); inhomogeneities*=-1.; - create_right_hand_side (mapping, dof, quadrature, function, rhs, constraints); - mass_matrix.vmult_add(rhs, inhomogeneities); + { + create_right_hand_side (mapping, dof, quadrature, function, rhs, constraints); + + // account for inhomogeneous constraints + inhomogeneities.update_ghost_values(); + FEEvaluation phi(*matrix_free); + for (unsigned int cell=0; celln_macro_cells(); ++cell) + { + phi.reinit(cell); + phi.read_dof_values_plain(inhomogeneities); + phi.evaluate(true, false); + for (unsigned int q=0; q arguments +// and inhomogeneous constraints + + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + + +// define the multi-linear function x or x*y or x*y*z that we will +// subsequently project onto the ansatz space +template +class F : public Function +{ +public: + virtual double value (const Point &p, + const unsigned int = 0) const + { + double s = 1; + for (unsigned int i=0; i +void test() +{ + // create 2 triangulations with the + // same coarse grid, and refine + // them differently + Triangulation tria; + + GridGenerator::hyper_cube (tria); + tria.refine_global (2); + + FE_Q fe(1); + DoFHandler dh (tria); + dh.distribute_dofs (fe); + + Vector v(dh.n_dofs()); + + const F approximated_function; + + ConstraintMatrix cm; + VectorTools::interpolate_boundary_values (dh, 0, approximated_function, cm); + cm.close (); + + VectorTools::project (dh, cm, QGauss(3), approximated_function, v); + + for (typename DoFHandler::active_cell_iterator cell=dh.begin_active(); + cell != dh.end(); ++cell) + for (unsigned int i=0; i::vertices_per_cell; ++i) + { + deallog << cell->vertex(i) << ' ' << v(cell->vertex_dof_index(i,0)) + << std::endl; + + // check that the error is + // somewhat small. it won't + // be zero since we project + // and do not interpolate + if (std::fabs(v(cell->vertex_dof_index(i,0)) - + F().value (cell->vertex(i))) + > 1e-4) + { + deallog << "expected value: " << F().value (cell->vertex(i)) << std::endl; + AssertThrow(false, ExcInternalError()); + } + } +} + + +int main() +{ + std::ofstream logfile ("output"); + deallog.attach(logfile); + + test<1>(); + test<2>(); + test<3>(); +} + diff --git a/tests/numerics/project_03.output b/tests/numerics/project_03.output new file mode 100644 index 0000000000..8889fb7a29 --- /dev/null +++ b/tests/numerics/project_03.output @@ -0,0 +1,585 @@ + +DEAL::0.00000 0 +DEAL::0.250000 0.250000 +DEAL::0.250000 0.250000 +DEAL::0.500000 0.500000 +DEAL::0.500000 0.500000 +DEAL::0.750000 0.750000 +DEAL::0.750000 0.750000 +DEAL::1.00000 1.00000 +DEAL::0.00000 0.00000 0 +DEAL::0.250000 0.00000 0 +DEAL::0.00000 0.250000 0 +DEAL::0.250000 0.250000 0.0625000 +DEAL::0.250000 0.00000 0 +DEAL::0.500000 0.00000 0 +DEAL::0.250000 0.250000 0.0625000 +DEAL::0.500000 0.250000 0.125000 +DEAL::0.00000 0.250000 0 +DEAL::0.250000 0.250000 0.0625000 +DEAL::0.00000 0.500000 0 +DEAL::0.250000 0.500000 0.125000 +DEAL::0.250000 0.250000 0.0625000 +DEAL::0.500000 0.250000 0.125000 +DEAL::0.250000 0.500000 0.125000 +DEAL::0.500000 0.500000 0.250000 +DEAL::0.500000 0.00000 0 +DEAL::0.750000 0.00000 0 +DEAL::0.500000 0.250000 0.125000 +DEAL::0.750000 0.250000 0.187500 +DEAL::0.750000 0.00000 0 +DEAL::1.00000 0.00000 0 +DEAL::0.750000 0.250000 0.187500 +DEAL::1.00000 0.250000 0.250000 +DEAL::0.500000 0.250000 0.125000 +DEAL::0.750000 0.250000 0.187500 +DEAL::0.500000 0.500000 0.250000 +DEAL::0.750000 0.500000 0.375000 +DEAL::0.750000 0.250000 0.187500 +DEAL::1.00000 0.250000 0.250000 +DEAL::0.750000 0.500000 0.375000 +DEAL::1.00000 0.500000 0.500000 +DEAL::0.00000 0.500000 0 +DEAL::0.250000 0.500000 0.125000 +DEAL::0.00000 0.750000 0 +DEAL::0.250000 0.750000 0.187500 +DEAL::0.250000 0.500000 0.125000 +DEAL::0.500000 0.500000 0.250000 +DEAL::0.250000 0.750000 0.187500 +DEAL::0.500000 0.750000 0.375000 +DEAL::0.00000 0.750000 0 +DEAL::0.250000 0.750000 0.187500 +DEAL::0.00000 1.00000 0 +DEAL::0.250000 1.00000 0.250000 +DEAL::0.250000 0.750000 0.187500 +DEAL::0.500000 0.750000 0.375000 +DEAL::0.250000 1.00000 0.250000 +DEAL::0.500000 1.00000 0.500000 +DEAL::0.500000 0.500000 0.250000 +DEAL::0.750000 0.500000 0.375000 +DEAL::0.500000 0.750000 0.375000 +DEAL::0.750000 0.750000 0.562500 +DEAL::0.750000 0.500000 0.375000 +DEAL::1.00000 0.500000 0.500000 +DEAL::0.750000 0.750000 0.562500 +DEAL::1.00000 0.750000 0.750000 +DEAL::0.500000 0.750000 0.375000 +DEAL::0.750000 0.750000 0.562500 +DEAL::0.500000 1.00000 0.500000 +DEAL::0.750000 1.00000 0.750000 +DEAL::0.750000 0.750000 0.562500 +DEAL::1.00000 0.750000 0.750000 +DEAL::0.750000 1.00000 0.750000 +DEAL::1.00000 1.00000 1.00000 +DEAL::0.00000 0.00000 0.00000 0 +DEAL::0.250000 0.00000 0.00000 0 +DEAL::0.00000 0.250000 0.00000 0 +DEAL::0.250000 0.250000 0.00000 0 +DEAL::0.00000 0.00000 0.250000 0 +DEAL::0.250000 0.00000 0.250000 0 +DEAL::0.00000 0.250000 0.250000 0 +DEAL::0.250000 0.250000 0.250000 0.0156250 +DEAL::0.250000 0.00000 0.00000 0 +DEAL::0.500000 0.00000 0.00000 0 +DEAL::0.250000 0.250000 0.00000 0 +DEAL::0.500000 0.250000 0.00000 0 +DEAL::0.250000 0.00000 0.250000 0 +DEAL::0.500000 0.00000 0.250000 0 +DEAL::0.250000 0.250000 0.250000 0.0156250 +DEAL::0.500000 0.250000 0.250000 0.0312500 +DEAL::0.00000 0.250000 0.00000 0 +DEAL::0.250000 0.250000 0.00000 0 +DEAL::0.00000 0.500000 0.00000 0 +DEAL::0.250000 0.500000 0.00000 0 +DEAL::0.00000 0.250000 0.250000 0 +DEAL::0.250000 0.250000 0.250000 0.0156250 +DEAL::0.00000 0.500000 0.250000 0 +DEAL::0.250000 0.500000 0.250000 0.0312500 +DEAL::0.250000 0.250000 0.00000 0 +DEAL::0.500000 0.250000 0.00000 0 +DEAL::0.250000 0.500000 0.00000 0 +DEAL::0.500000 0.500000 0.00000 0 +DEAL::0.250000 0.250000 0.250000 0.0156250 +DEAL::0.500000 0.250000 0.250000 0.0312500 +DEAL::0.250000 0.500000 0.250000 0.0312500 +DEAL::0.500000 0.500000 0.250000 0.0625000 +DEAL::0.00000 0.00000 0.250000 0 +DEAL::0.250000 0.00000 0.250000 0 +DEAL::0.00000 0.250000 0.250000 0 +DEAL::0.250000 0.250000 0.250000 0.0156250 +DEAL::0.00000 0.00000 0.500000 0 +DEAL::0.250000 0.00000 0.500000 0 +DEAL::0.00000 0.250000 0.500000 0 +DEAL::0.250000 0.250000 0.500000 0.0312500 +DEAL::0.250000 0.00000 0.250000 0 +DEAL::0.500000 0.00000 0.250000 0 +DEAL::0.250000 0.250000 0.250000 0.0156250 +DEAL::0.500000 0.250000 0.250000 0.0312500 +DEAL::0.250000 0.00000 0.500000 0 +DEAL::0.500000 0.00000 0.500000 0 +DEAL::0.250000 0.250000 0.500000 0.0312500 +DEAL::0.500000 0.250000 0.500000 0.0625000 +DEAL::0.00000 0.250000 0.250000 0 +DEAL::0.250000 0.250000 0.250000 0.0156250 +DEAL::0.00000 0.500000 0.250000 0 +DEAL::0.250000 0.500000 0.250000 0.0312500 +DEAL::0.00000 0.250000 0.500000 0 +DEAL::0.250000 0.250000 0.500000 0.0312500 +DEAL::0.00000 0.500000 0.500000 0 +DEAL::0.250000 0.500000 0.500000 0.0625000 +DEAL::0.250000 0.250000 0.250000 0.0156250 +DEAL::0.500000 0.250000 0.250000 0.0312500 +DEAL::0.250000 0.500000 0.250000 0.0312500 +DEAL::0.500000 0.500000 0.250000 0.0625000 +DEAL::0.250000 0.250000 0.500000 0.0312500 +DEAL::0.500000 0.250000 0.500000 0.0625000 +DEAL::0.250000 0.500000 0.500000 0.0625000 +DEAL::0.500000 0.500000 0.500000 0.125000 +DEAL::0.500000 0.00000 0.00000 0 +DEAL::0.750000 0.00000 0.00000 0 +DEAL::0.500000 0.250000 0.00000 0 +DEAL::0.750000 0.250000 0.00000 0 +DEAL::0.500000 0.00000 0.250000 0 +DEAL::0.750000 0.00000 0.250000 0 +DEAL::0.500000 0.250000 0.250000 0.0312500 +DEAL::0.750000 0.250000 0.250000 0.0468750 +DEAL::0.750000 0.00000 0.00000 0 +DEAL::1.00000 0.00000 0.00000 0 +DEAL::0.750000 0.250000 0.00000 0 +DEAL::1.00000 0.250000 0.00000 0 +DEAL::0.750000 0.00000 0.250000 0 +DEAL::1.00000 0.00000 0.250000 0 +DEAL::0.750000 0.250000 0.250000 0.0468750 +DEAL::1.00000 0.250000 0.250000 0.0625000 +DEAL::0.500000 0.250000 0.00000 0 +DEAL::0.750000 0.250000 0.00000 0 +DEAL::0.500000 0.500000 0.00000 0 +DEAL::0.750000 0.500000 0.00000 0 +DEAL::0.500000 0.250000 0.250000 0.0312500 +DEAL::0.750000 0.250000 0.250000 0.0468750 +DEAL::0.500000 0.500000 0.250000 0.0625000 +DEAL::0.750000 0.500000 0.250000 0.0937500 +DEAL::0.750000 0.250000 0.00000 0 +DEAL::1.00000 0.250000 0.00000 0 +DEAL::0.750000 0.500000 0.00000 0 +DEAL::1.00000 0.500000 0.00000 0 +DEAL::0.750000 0.250000 0.250000 0.0468750 +DEAL::1.00000 0.250000 0.250000 0.0625000 +DEAL::0.750000 0.500000 0.250000 0.0937500 +DEAL::1.00000 0.500000 0.250000 0.125000 +DEAL::0.500000 0.00000 0.250000 0 +DEAL::0.750000 0.00000 0.250000 0 +DEAL::0.500000 0.250000 0.250000 0.0312500 +DEAL::0.750000 0.250000 0.250000 0.0468750 +DEAL::0.500000 0.00000 0.500000 0 +DEAL::0.750000 0.00000 0.500000 0 +DEAL::0.500000 0.250000 0.500000 0.0625000 +DEAL::0.750000 0.250000 0.500000 0.0937500 +DEAL::0.750000 0.00000 0.250000 0 +DEAL::1.00000 0.00000 0.250000 0 +DEAL::0.750000 0.250000 0.250000 0.0468750 +DEAL::1.00000 0.250000 0.250000 0.0625000 +DEAL::0.750000 0.00000 0.500000 0 +DEAL::1.00000 0.00000 0.500000 0 +DEAL::0.750000 0.250000 0.500000 0.0937500 +DEAL::1.00000 0.250000 0.500000 0.125000 +DEAL::0.500000 0.250000 0.250000 0.0312500 +DEAL::0.750000 0.250000 0.250000 0.0468750 +DEAL::0.500000 0.500000 0.250000 0.0625000 +DEAL::0.750000 0.500000 0.250000 0.0937500 +DEAL::0.500000 0.250000 0.500000 0.0625000 +DEAL::0.750000 0.250000 0.500000 0.0937500 +DEAL::0.500000 0.500000 0.500000 0.125000 +DEAL::0.750000 0.500000 0.500000 0.187500 +DEAL::0.750000 0.250000 0.250000 0.0468750 +DEAL::1.00000 0.250000 0.250000 0.0625000 +DEAL::0.750000 0.500000 0.250000 0.0937500 +DEAL::1.00000 0.500000 0.250000 0.125000 +DEAL::0.750000 0.250000 0.500000 0.0937500 +DEAL::1.00000 0.250000 0.500000 0.125000 +DEAL::0.750000 0.500000 0.500000 0.187500 +DEAL::1.00000 0.500000 0.500000 0.250000 +DEAL::0.00000 0.500000 0.00000 0 +DEAL::0.250000 0.500000 0.00000 0 +DEAL::0.00000 0.750000 0.00000 0 +DEAL::0.250000 0.750000 0.00000 0 +DEAL::0.00000 0.500000 0.250000 0 +DEAL::0.250000 0.500000 0.250000 0.0312500 +DEAL::0.00000 0.750000 0.250000 0 +DEAL::0.250000 0.750000 0.250000 0.0468750 +DEAL::0.250000 0.500000 0.00000 0 +DEAL::0.500000 0.500000 0.00000 0 +DEAL::0.250000 0.750000 0.00000 0 +DEAL::0.500000 0.750000 0.00000 0 +DEAL::0.250000 0.500000 0.250000 0.0312500 +DEAL::0.500000 0.500000 0.250000 0.0625000 +DEAL::0.250000 0.750000 0.250000 0.0468750 +DEAL::0.500000 0.750000 0.250000 0.0937500 +DEAL::0.00000 0.750000 0.00000 0 +DEAL::0.250000 0.750000 0.00000 0 +DEAL::0.00000 1.00000 0.00000 0 +DEAL::0.250000 1.00000 0.00000 0 +DEAL::0.00000 0.750000 0.250000 0 +DEAL::0.250000 0.750000 0.250000 0.0468750 +DEAL::0.00000 1.00000 0.250000 0 +DEAL::0.250000 1.00000 0.250000 0.0625000 +DEAL::0.250000 0.750000 0.00000 0 +DEAL::0.500000 0.750000 0.00000 0 +DEAL::0.250000 1.00000 0.00000 0 +DEAL::0.500000 1.00000 0.00000 0 +DEAL::0.250000 0.750000 0.250000 0.0468750 +DEAL::0.500000 0.750000 0.250000 0.0937500 +DEAL::0.250000 1.00000 0.250000 0.0625000 +DEAL::0.500000 1.00000 0.250000 0.125000 +DEAL::0.00000 0.500000 0.250000 0 +DEAL::0.250000 0.500000 0.250000 0.0312500 +DEAL::0.00000 0.750000 0.250000 0 +DEAL::0.250000 0.750000 0.250000 0.0468750 +DEAL::0.00000 0.500000 0.500000 0 +DEAL::0.250000 0.500000 0.500000 0.0625000 +DEAL::0.00000 0.750000 0.500000 0 +DEAL::0.250000 0.750000 0.500000 0.0937500 +DEAL::0.250000 0.500000 0.250000 0.0312500 +DEAL::0.500000 0.500000 0.250000 0.0625000 +DEAL::0.250000 0.750000 0.250000 0.0468750 +DEAL::0.500000 0.750000 0.250000 0.0937500 +DEAL::0.250000 0.500000 0.500000 0.0625000 +DEAL::0.500000 0.500000 0.500000 0.125000 +DEAL::0.250000 0.750000 0.500000 0.0937500 +DEAL::0.500000 0.750000 0.500000 0.187500 +DEAL::0.00000 0.750000 0.250000 0 +DEAL::0.250000 0.750000 0.250000 0.0468750 +DEAL::0.00000 1.00000 0.250000 0 +DEAL::0.250000 1.00000 0.250000 0.0625000 +DEAL::0.00000 0.750000 0.500000 0 +DEAL::0.250000 0.750000 0.500000 0.0937500 +DEAL::0.00000 1.00000 0.500000 0 +DEAL::0.250000 1.00000 0.500000 0.125000 +DEAL::0.250000 0.750000 0.250000 0.0468750 +DEAL::0.500000 0.750000 0.250000 0.0937500 +DEAL::0.250000 1.00000 0.250000 0.0625000 +DEAL::0.500000 1.00000 0.250000 0.125000 +DEAL::0.250000 0.750000 0.500000 0.0937500 +DEAL::0.500000 0.750000 0.500000 0.187500 +DEAL::0.250000 1.00000 0.500000 0.125000 +DEAL::0.500000 1.00000 0.500000 0.250000 +DEAL::0.500000 0.500000 0.00000 0 +DEAL::0.750000 0.500000 0.00000 0 +DEAL::0.500000 0.750000 0.00000 0 +DEAL::0.750000 0.750000 0.00000 0 +DEAL::0.500000 0.500000 0.250000 0.0625000 +DEAL::0.750000 0.500000 0.250000 0.0937500 +DEAL::0.500000 0.750000 0.250000 0.0937500 +DEAL::0.750000 0.750000 0.250000 0.140625 +DEAL::0.750000 0.500000 0.00000 0 +DEAL::1.00000 0.500000 0.00000 0 +DEAL::0.750000 0.750000 0.00000 0 +DEAL::1.00000 0.750000 0.00000 0 +DEAL::0.750000 0.500000 0.250000 0.0937500 +DEAL::1.00000 0.500000 0.250000 0.125000 +DEAL::0.750000 0.750000 0.250000 0.140625 +DEAL::1.00000 0.750000 0.250000 0.187500 +DEAL::0.500000 0.750000 0.00000 0 +DEAL::0.750000 0.750000 0.00000 0 +DEAL::0.500000 1.00000 0.00000 0 +DEAL::0.750000 1.00000 0.00000 0 +DEAL::0.500000 0.750000 0.250000 0.0937500 +DEAL::0.750000 0.750000 0.250000 0.140625 +DEAL::0.500000 1.00000 0.250000 0.125000 +DEAL::0.750000 1.00000 0.250000 0.187500 +DEAL::0.750000 0.750000 0.00000 0 +DEAL::1.00000 0.750000 0.00000 0 +DEAL::0.750000 1.00000 0.00000 0 +DEAL::1.00000 1.00000 0.00000 0 +DEAL::0.750000 0.750000 0.250000 0.140625 +DEAL::1.00000 0.750000 0.250000 0.187500 +DEAL::0.750000 1.00000 0.250000 0.187500 +DEAL::1.00000 1.00000 0.250000 0.250000 +DEAL::0.500000 0.500000 0.250000 0.0625000 +DEAL::0.750000 0.500000 0.250000 0.0937500 +DEAL::0.500000 0.750000 0.250000 0.0937500 +DEAL::0.750000 0.750000 0.250000 0.140625 +DEAL::0.500000 0.500000 0.500000 0.125000 +DEAL::0.750000 0.500000 0.500000 0.187500 +DEAL::0.500000 0.750000 0.500000 0.187500 +DEAL::0.750000 0.750000 0.500000 0.281250 +DEAL::0.750000 0.500000 0.250000 0.0937500 +DEAL::1.00000 0.500000 0.250000 0.125000 +DEAL::0.750000 0.750000 0.250000 0.140625 +DEAL::1.00000 0.750000 0.250000 0.187500 +DEAL::0.750000 0.500000 0.500000 0.187500 +DEAL::1.00000 0.500000 0.500000 0.250000 +DEAL::0.750000 0.750000 0.500000 0.281250 +DEAL::1.00000 0.750000 0.500000 0.375000 +DEAL::0.500000 0.750000 0.250000 0.0937500 +DEAL::0.750000 0.750000 0.250000 0.140625 +DEAL::0.500000 1.00000 0.250000 0.125000 +DEAL::0.750000 1.00000 0.250000 0.187500 +DEAL::0.500000 0.750000 0.500000 0.187500 +DEAL::0.750000 0.750000 0.500000 0.281250 +DEAL::0.500000 1.00000 0.500000 0.250000 +DEAL::0.750000 1.00000 0.500000 0.375000 +DEAL::0.750000 0.750000 0.250000 0.140625 +DEAL::1.00000 0.750000 0.250000 0.187500 +DEAL::0.750000 1.00000 0.250000 0.187500 +DEAL::1.00000 1.00000 0.250000 0.250000 +DEAL::0.750000 0.750000 0.500000 0.281250 +DEAL::1.00000 0.750000 0.500000 0.375000 +DEAL::0.750000 1.00000 0.500000 0.375000 +DEAL::1.00000 1.00000 0.500000 0.500000 +DEAL::0.00000 0.00000 0.500000 0 +DEAL::0.250000 0.00000 0.500000 0 +DEAL::0.00000 0.250000 0.500000 0 +DEAL::0.250000 0.250000 0.500000 0.0312500 +DEAL::0.00000 0.00000 0.750000 0 +DEAL::0.250000 0.00000 0.750000 0 +DEAL::0.00000 0.250000 0.750000 0 +DEAL::0.250000 0.250000 0.750000 0.0468750 +DEAL::0.250000 0.00000 0.500000 0 +DEAL::0.500000 0.00000 0.500000 0 +DEAL::0.250000 0.250000 0.500000 0.0312500 +DEAL::0.500000 0.250000 0.500000 0.0625000 +DEAL::0.250000 0.00000 0.750000 0 +DEAL::0.500000 0.00000 0.750000 0 +DEAL::0.250000 0.250000 0.750000 0.0468750 +DEAL::0.500000 0.250000 0.750000 0.0937500 +DEAL::0.00000 0.250000 0.500000 0 +DEAL::0.250000 0.250000 0.500000 0.0312500 +DEAL::0.00000 0.500000 0.500000 0 +DEAL::0.250000 0.500000 0.500000 0.0625000 +DEAL::0.00000 0.250000 0.750000 0 +DEAL::0.250000 0.250000 0.750000 0.0468750 +DEAL::0.00000 0.500000 0.750000 0 +DEAL::0.250000 0.500000 0.750000 0.0937500 +DEAL::0.250000 0.250000 0.500000 0.0312500 +DEAL::0.500000 0.250000 0.500000 0.0625000 +DEAL::0.250000 0.500000 0.500000 0.0625000 +DEAL::0.500000 0.500000 0.500000 0.125000 +DEAL::0.250000 0.250000 0.750000 0.0468750 +DEAL::0.500000 0.250000 0.750000 0.0937500 +DEAL::0.250000 0.500000 0.750000 0.0937500 +DEAL::0.500000 0.500000 0.750000 0.187500 +DEAL::0.00000 0.00000 0.750000 0 +DEAL::0.250000 0.00000 0.750000 0 +DEAL::0.00000 0.250000 0.750000 0 +DEAL::0.250000 0.250000 0.750000 0.0468750 +DEAL::0.00000 0.00000 1.00000 0 +DEAL::0.250000 0.00000 1.00000 0 +DEAL::0.00000 0.250000 1.00000 0 +DEAL::0.250000 0.250000 1.00000 0.0625000 +DEAL::0.250000 0.00000 0.750000 0 +DEAL::0.500000 0.00000 0.750000 0 +DEAL::0.250000 0.250000 0.750000 0.0468750 +DEAL::0.500000 0.250000 0.750000 0.0937500 +DEAL::0.250000 0.00000 1.00000 0 +DEAL::0.500000 0.00000 1.00000 0 +DEAL::0.250000 0.250000 1.00000 0.0625000 +DEAL::0.500000 0.250000 1.00000 0.125000 +DEAL::0.00000 0.250000 0.750000 0 +DEAL::0.250000 0.250000 0.750000 0.0468750 +DEAL::0.00000 0.500000 0.750000 0 +DEAL::0.250000 0.500000 0.750000 0.0937500 +DEAL::0.00000 0.250000 1.00000 0 +DEAL::0.250000 0.250000 1.00000 0.0625000 +DEAL::0.00000 0.500000 1.00000 0 +DEAL::0.250000 0.500000 1.00000 0.125000 +DEAL::0.250000 0.250000 0.750000 0.0468750 +DEAL::0.500000 0.250000 0.750000 0.0937500 +DEAL::0.250000 0.500000 0.750000 0.0937500 +DEAL::0.500000 0.500000 0.750000 0.187500 +DEAL::0.250000 0.250000 1.00000 0.0625000 +DEAL::0.500000 0.250000 1.00000 0.125000 +DEAL::0.250000 0.500000 1.00000 0.125000 +DEAL::0.500000 0.500000 1.00000 0.250000 +DEAL::0.500000 0.00000 0.500000 0 +DEAL::0.750000 0.00000 0.500000 0 +DEAL::0.500000 0.250000 0.500000 0.0625000 +DEAL::0.750000 0.250000 0.500000 0.0937500 +DEAL::0.500000 0.00000 0.750000 0 +DEAL::0.750000 0.00000 0.750000 0 +DEAL::0.500000 0.250000 0.750000 0.0937500 +DEAL::0.750000 0.250000 0.750000 0.140625 +DEAL::0.750000 0.00000 0.500000 0 +DEAL::1.00000 0.00000 0.500000 0 +DEAL::0.750000 0.250000 0.500000 0.0937500 +DEAL::1.00000 0.250000 0.500000 0.125000 +DEAL::0.750000 0.00000 0.750000 0 +DEAL::1.00000 0.00000 0.750000 0 +DEAL::0.750000 0.250000 0.750000 0.140625 +DEAL::1.00000 0.250000 0.750000 0.187500 +DEAL::0.500000 0.250000 0.500000 0.0625000 +DEAL::0.750000 0.250000 0.500000 0.0937500 +DEAL::0.500000 0.500000 0.500000 0.125000 +DEAL::0.750000 0.500000 0.500000 0.187500 +DEAL::0.500000 0.250000 0.750000 0.0937500 +DEAL::0.750000 0.250000 0.750000 0.140625 +DEAL::0.500000 0.500000 0.750000 0.187500 +DEAL::0.750000 0.500000 0.750000 0.281250 +DEAL::0.750000 0.250000 0.500000 0.0937500 +DEAL::1.00000 0.250000 0.500000 0.125000 +DEAL::0.750000 0.500000 0.500000 0.187500 +DEAL::1.00000 0.500000 0.500000 0.250000 +DEAL::0.750000 0.250000 0.750000 0.140625 +DEAL::1.00000 0.250000 0.750000 0.187500 +DEAL::0.750000 0.500000 0.750000 0.281250 +DEAL::1.00000 0.500000 0.750000 0.375000 +DEAL::0.500000 0.00000 0.750000 0 +DEAL::0.750000 0.00000 0.750000 0 +DEAL::0.500000 0.250000 0.750000 0.0937500 +DEAL::0.750000 0.250000 0.750000 0.140625 +DEAL::0.500000 0.00000 1.00000 0 +DEAL::0.750000 0.00000 1.00000 0 +DEAL::0.500000 0.250000 1.00000 0.125000 +DEAL::0.750000 0.250000 1.00000 0.187500 +DEAL::0.750000 0.00000 0.750000 0 +DEAL::1.00000 0.00000 0.750000 0 +DEAL::0.750000 0.250000 0.750000 0.140625 +DEAL::1.00000 0.250000 0.750000 0.187500 +DEAL::0.750000 0.00000 1.00000 0 +DEAL::1.00000 0.00000 1.00000 0 +DEAL::0.750000 0.250000 1.00000 0.187500 +DEAL::1.00000 0.250000 1.00000 0.250000 +DEAL::0.500000 0.250000 0.750000 0.0937500 +DEAL::0.750000 0.250000 0.750000 0.140625 +DEAL::0.500000 0.500000 0.750000 0.187500 +DEAL::0.750000 0.500000 0.750000 0.281250 +DEAL::0.500000 0.250000 1.00000 0.125000 +DEAL::0.750000 0.250000 1.00000 0.187500 +DEAL::0.500000 0.500000 1.00000 0.250000 +DEAL::0.750000 0.500000 1.00000 0.375000 +DEAL::0.750000 0.250000 0.750000 0.140625 +DEAL::1.00000 0.250000 0.750000 0.187500 +DEAL::0.750000 0.500000 0.750000 0.281250 +DEAL::1.00000 0.500000 0.750000 0.375000 +DEAL::0.750000 0.250000 1.00000 0.187500 +DEAL::1.00000 0.250000 1.00000 0.250000 +DEAL::0.750000 0.500000 1.00000 0.375000 +DEAL::1.00000 0.500000 1.00000 0.500000 +DEAL::0.00000 0.500000 0.500000 0 +DEAL::0.250000 0.500000 0.500000 0.0625000 +DEAL::0.00000 0.750000 0.500000 0 +DEAL::0.250000 0.750000 0.500000 0.0937500 +DEAL::0.00000 0.500000 0.750000 0 +DEAL::0.250000 0.500000 0.750000 0.0937500 +DEAL::0.00000 0.750000 0.750000 0 +DEAL::0.250000 0.750000 0.750000 0.140625 +DEAL::0.250000 0.500000 0.500000 0.0625000 +DEAL::0.500000 0.500000 0.500000 0.125000 +DEAL::0.250000 0.750000 0.500000 0.0937500 +DEAL::0.500000 0.750000 0.500000 0.187500 +DEAL::0.250000 0.500000 0.750000 0.0937500 +DEAL::0.500000 0.500000 0.750000 0.187500 +DEAL::0.250000 0.750000 0.750000 0.140625 +DEAL::0.500000 0.750000 0.750000 0.281250 +DEAL::0.00000 0.750000 0.500000 0 +DEAL::0.250000 0.750000 0.500000 0.0937500 +DEAL::0.00000 1.00000 0.500000 0 +DEAL::0.250000 1.00000 0.500000 0.125000 +DEAL::0.00000 0.750000 0.750000 0 +DEAL::0.250000 0.750000 0.750000 0.140625 +DEAL::0.00000 1.00000 0.750000 0 +DEAL::0.250000 1.00000 0.750000 0.187500 +DEAL::0.250000 0.750000 0.500000 0.0937500 +DEAL::0.500000 0.750000 0.500000 0.187500 +DEAL::0.250000 1.00000 0.500000 0.125000 +DEAL::0.500000 1.00000 0.500000 0.250000 +DEAL::0.250000 0.750000 0.750000 0.140625 +DEAL::0.500000 0.750000 0.750000 0.281250 +DEAL::0.250000 1.00000 0.750000 0.187500 +DEAL::0.500000 1.00000 0.750000 0.375000 +DEAL::0.00000 0.500000 0.750000 0 +DEAL::0.250000 0.500000 0.750000 0.0937500 +DEAL::0.00000 0.750000 0.750000 0 +DEAL::0.250000 0.750000 0.750000 0.140625 +DEAL::0.00000 0.500000 1.00000 0 +DEAL::0.250000 0.500000 1.00000 0.125000 +DEAL::0.00000 0.750000 1.00000 0 +DEAL::0.250000 0.750000 1.00000 0.187500 +DEAL::0.250000 0.500000 0.750000 0.0937500 +DEAL::0.500000 0.500000 0.750000 0.187500 +DEAL::0.250000 0.750000 0.750000 0.140625 +DEAL::0.500000 0.750000 0.750000 0.281250 +DEAL::0.250000 0.500000 1.00000 0.125000 +DEAL::0.500000 0.500000 1.00000 0.250000 +DEAL::0.250000 0.750000 1.00000 0.187500 +DEAL::0.500000 0.750000 1.00000 0.375000 +DEAL::0.00000 0.750000 0.750000 0 +DEAL::0.250000 0.750000 0.750000 0.140625 +DEAL::0.00000 1.00000 0.750000 0 +DEAL::0.250000 1.00000 0.750000 0.187500 +DEAL::0.00000 0.750000 1.00000 0 +DEAL::0.250000 0.750000 1.00000 0.187500 +DEAL::0.00000 1.00000 1.00000 0 +DEAL::0.250000 1.00000 1.00000 0.250000 +DEAL::0.250000 0.750000 0.750000 0.140625 +DEAL::0.500000 0.750000 0.750000 0.281250 +DEAL::0.250000 1.00000 0.750000 0.187500 +DEAL::0.500000 1.00000 0.750000 0.375000 +DEAL::0.250000 0.750000 1.00000 0.187500 +DEAL::0.500000 0.750000 1.00000 0.375000 +DEAL::0.250000 1.00000 1.00000 0.250000 +DEAL::0.500000 1.00000 1.00000 0.500000 +DEAL::0.500000 0.500000 0.500000 0.125000 +DEAL::0.750000 0.500000 0.500000 0.187500 +DEAL::0.500000 0.750000 0.500000 0.187500 +DEAL::0.750000 0.750000 0.500000 0.281250 +DEAL::0.500000 0.500000 0.750000 0.187500 +DEAL::0.750000 0.500000 0.750000 0.281250 +DEAL::0.500000 0.750000 0.750000 0.281250 +DEAL::0.750000 0.750000 0.750000 0.421875 +DEAL::0.750000 0.500000 0.500000 0.187500 +DEAL::1.00000 0.500000 0.500000 0.250000 +DEAL::0.750000 0.750000 0.500000 0.281250 +DEAL::1.00000 0.750000 0.500000 0.375000 +DEAL::0.750000 0.500000 0.750000 0.281250 +DEAL::1.00000 0.500000 0.750000 0.375000 +DEAL::0.750000 0.750000 0.750000 0.421875 +DEAL::1.00000 0.750000 0.750000 0.562500 +DEAL::0.500000 0.750000 0.500000 0.187500 +DEAL::0.750000 0.750000 0.500000 0.281250 +DEAL::0.500000 1.00000 0.500000 0.250000 +DEAL::0.750000 1.00000 0.500000 0.375000 +DEAL::0.500000 0.750000 0.750000 0.281250 +DEAL::0.750000 0.750000 0.750000 0.421875 +DEAL::0.500000 1.00000 0.750000 0.375000 +DEAL::0.750000 1.00000 0.750000 0.562500 +DEAL::0.750000 0.750000 0.500000 0.281250 +DEAL::1.00000 0.750000 0.500000 0.375000 +DEAL::0.750000 1.00000 0.500000 0.375000 +DEAL::1.00000 1.00000 0.500000 0.500000 +DEAL::0.750000 0.750000 0.750000 0.421875 +DEAL::1.00000 0.750000 0.750000 0.562500 +DEAL::0.750000 1.00000 0.750000 0.562500 +DEAL::1.00000 1.00000 0.750000 0.750000 +DEAL::0.500000 0.500000 0.750000 0.187500 +DEAL::0.750000 0.500000 0.750000 0.281250 +DEAL::0.500000 0.750000 0.750000 0.281250 +DEAL::0.750000 0.750000 0.750000 0.421875 +DEAL::0.500000 0.500000 1.00000 0.250000 +DEAL::0.750000 0.500000 1.00000 0.375000 +DEAL::0.500000 0.750000 1.00000 0.375000 +DEAL::0.750000 0.750000 1.00000 0.562500 +DEAL::0.750000 0.500000 0.750000 0.281250 +DEAL::1.00000 0.500000 0.750000 0.375000 +DEAL::0.750000 0.750000 0.750000 0.421875 +DEAL::1.00000 0.750000 0.750000 0.562500 +DEAL::0.750000 0.500000 1.00000 0.375000 +DEAL::1.00000 0.500000 1.00000 0.500000 +DEAL::0.750000 0.750000 1.00000 0.562500 +DEAL::1.00000 0.750000 1.00000 0.750000 +DEAL::0.500000 0.750000 0.750000 0.281250 +DEAL::0.750000 0.750000 0.750000 0.421875 +DEAL::0.500000 1.00000 0.750000 0.375000 +DEAL::0.750000 1.00000 0.750000 0.562500 +DEAL::0.500000 0.750000 1.00000 0.375000 +DEAL::0.750000 0.750000 1.00000 0.562500 +DEAL::0.500000 1.00000 1.00000 0.500000 +DEAL::0.750000 1.00000 1.00000 0.750000 +DEAL::0.750000 0.750000 0.750000 0.421875 +DEAL::1.00000 0.750000 0.750000 0.562500 +DEAL::0.750000 1.00000 0.750000 0.562500 +DEAL::1.00000 1.00000 0.750000 0.750000 +DEAL::0.750000 0.750000 1.00000 0.562500 +DEAL::1.00000 0.750000 1.00000 0.750000 +DEAL::0.750000 1.00000 1.00000 0.750000 +DEAL::1.00000 1.00000 1.00000 1.00000