From 04bb61f8d042ce25fb2ccc52f0c40333a8ec4048 Mon Sep 17 00:00:00 2001 From: maier Date: Thu, 13 Feb 2014 15:46:01 +0000 Subject: [PATCH] new FE_TraceQ by Angela git-svn-id: https://svn.dealii.org/trunk@32482 0785d39b-7218-0410-832d-ea1e28bc413d --- .../deal.II/fe/fe_poly_face.templates.h | 39 ++- deal.II/include/deal.II/fe/fe_tools.h | 6 + deal.II/include/deal.II/fe/fe_trace.h | 103 +++++++ deal.II/source/fe/CMakeLists.txt | 2 + deal.II/source/fe/fe_tools.cc | 126 ++++---- deal.II/source/fe/fe_tools.inst.in | 6 + deal.II/source/fe/fe_trace.cc | 266 +++++++++++++++++ deal.II/source/fe/fe_trace.inst.in | 22 ++ tests/fe/shapes_traceq.cc | 71 +++++ tests/fe/shapes_traceq.output | 281 ++++++++++++++++++ 10 files changed, 858 insertions(+), 64 deletions(-) create mode 100644 deal.II/include/deal.II/fe/fe_trace.h create mode 100644 deal.II/source/fe/fe_trace.cc create mode 100644 deal.II/source/fe/fe_trace.inst.in create mode 100644 tests/fe/shapes_traceq.cc create mode 100644 tests/fe/shapes_traceq.output diff --git a/deal.II/include/deal.II/fe/fe_poly_face.templates.h b/deal.II/include/deal.II/fe/fe_poly_face.templates.h index c1067d7521..e84a3959e2 100644 --- a/deal.II/include/deal.II/fe/fe_poly_face.templates.h +++ b/deal.II/include/deal.II/fe/fe_poly_face.templates.h @@ -207,14 +207,45 @@ FE_PolyFace::fill_fe_face_values ( const UpdateFlags flags(fe_data.update_once | fe_data.update_each); - const unsigned int foffset = fe_data.shape_values.size() * face; if (flags & update_values) for (unsigned int i=0; idofs_per_cell; ++k) + for (unsigned int k=0; kdofs_per_cell; ++k) data.shape_values(k,i) = 0.; - for (unsigned int k=0; kdofs_per_quad !=0) + { + const unsigned int foffset = this->first_quad_index + this->dofs_per_quad * face; + for (unsigned int k=0; kdofs_per_quad; ++k) + data.shape_values(foffset+k,i) = fe_data.shape_values[k+this->first_face_quad_index][i]; + } + } + case 2: + { + // Fill data for line shape functions + if (this->dofs_per_line != 0) + { + const unsigned int foffset = this->first_line_index; + for (unsigned int line=0; line::lines_per_face; ++line) + { + for (unsigned int k=0; kdofs_per_line; ++k) + data.shape_values(foffset+GeometryInfo::face_to_cell_lines(face, line)*this->dofs_per_line+k,i) = fe_data.shape_values[k+(line*this->dofs_per_line)+this->first_face_line_index][i]; + } + } + } + case 1: + { + // Fill data for vertex shape functions + if (this->dofs_per_vertex != 0) + for (unsigned int lvertex=0; lvertex::vertices_per_face; ++lvertex) + data.shape_values(GeometryInfo::face_to_cell_vertices(face, lvertex),i) = fe_data.shape_values[lvertex][i]; + break; + } + } } } diff --git a/deal.II/include/deal.II/fe/fe_tools.h b/deal.II/include/deal.II/fe/fe_tools.h index 685cacda70..5b9e220f74 100644 --- a/deal.II/include/deal.II/fe/fe_tools.h +++ b/deal.II/include/deal.II/fe/fe_tools.h @@ -761,6 +761,12 @@ namespace FETools * correct size, which is equal to the number of degrees of freedom in the * finite element. */ + + template + void + hierarchic_to_lexicographic_numbering (unsigned int degree, + std::vector &h2l); + template void hierarchic_to_lexicographic_numbering (const FiniteElementData &fe_data, diff --git a/deal.II/include/deal.II/fe/fe_trace.h b/deal.II/include/deal.II/fe/fe_trace.h new file mode 100644 index 0000000000..d098aa16b7 --- /dev/null +++ b/deal.II/include/deal.II/fe/fe_trace.h @@ -0,0 +1,103 @@ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + +#ifndef __deal2__fe_trace_h +#define __deal2__fe_trace_h + +#include +#include +#include + +DEAL_II_NAMESPACE_OPEN + +/** + * A finite element, which is the trace of Fe_Q elements, that is + * a tensor product of polynomials on the faces, + * undefined in the interior of the cells and continuous. The basis functions on + * the faces are from Polynomials::LagrangeEquidistant + * + * This finite element is the trace space of FE_Q on the + * faces. + * + * @note Since these are only finite elements on faces, only + * FEFaceValues and FESubfaceValues will be able to extract reasonable + * values from any face polynomial. In order to make the use of + * FESystem simpler, FEValues objects will not fail using this finite + * element space, but all shape function values extracted will equal + * to zero. + * + * @todo Polynomials::LagrangeEquidistant should be and will be + * replaced by Polynomials::LagrangeGaussLobatto as soon as such a + * polynomial set exists. + * @todo so far, hanging nodes are not implemented + * + */ + +template +class FE_TraceQ : public FE_PolyFace, dim, spacedim> +{ +public: + /** + * Constructor for tensor product + * polynomials of degree + * p. The shape + * functions created using this + * constructor correspond to + * Legendre polynomials in each + * coordinate direction. + */ + FE_TraceQ(unsigned int p); + + virtual FiniteElement *clone() const; + + /** + * Return a string that uniquely + * identifies a finite + * element. This class returns + * FE_DGQ(degree), with + * dim and degree + * replaced by appropriate + * values. + */ + virtual std::string get_name () const; + + /** + * Check for non-zero values on a face. + * + * This function returns + * @p true, if the shape + * function @p shape_index has + * non-zero values on the face + * @p face_index. + * + * Implementation of the + * interface in + * FiniteElement + */ + virtual bool has_support_on_face (const unsigned int shape_index, + const unsigned int face_index) const; + +private: + /** + * Return vector with dofs per + * vertex, line, quad, hex. + */ + static std::vector get_dpo_vector (const unsigned int deg); +}; + +DEAL_II_NAMESPACE_CLOSE + +#endif diff --git a/deal.II/source/fe/CMakeLists.txt b/deal.II/source/fe/CMakeLists.txt index 57b9e686f8..31fe760161 100644 --- a/deal.II/source/fe/CMakeLists.txt +++ b/deal.II/source/fe/CMakeLists.txt @@ -43,6 +43,7 @@ SET(_src fe_system.cc fe_tools.cc fe_tools_interpolate.cc + fe_trace.cc fe_values.cc fe_values_inst2.cc mapping_c1.cc @@ -78,6 +79,7 @@ SET(_inst fe_system.inst.in fe_tools.inst.in fe_tools_interpolate.inst.in + fe_trace.inst.in fe_values.decl.1.inst.in fe_values.decl.2.inst.in fe_values.impl.1.inst.in diff --git a/deal.II/source/fe/fe_tools.cc b/deal.II/source/fe/fe_tools.cc index b72d5a6671..87a9685e71 100644 --- a/deal.II/source/fe/fe_tools.cc +++ b/deal.II/source/fe/fe_tools.cc @@ -1944,29 +1944,21 @@ namespace FETools template void - hierarchic_to_lexicographic_numbering (const FiniteElementData &fe, - std::vector &h2l) + hierarchic_to_lexicographic_numbering (unsigned int degree, std::vector& h2l) { - Assert (h2l.size() == fe.dofs_per_cell, - ExcDimensionMismatch (h2l.size(), fe.dofs_per_cell)); - h2l = hierarchic_to_lexicographic_numbering (fe); - } - - + // number of support points in each + // direction + const unsigned int n = degree+1; - template - std::vector - hierarchic_to_lexicographic_numbering (const FiniteElementData &fe) - { - Assert (fe.n_components() == 1, ExcInvalidFE()); + unsigned int dofs_per_cell = n; + for (unsigned int i=1;i h2l (fe.dofs_per_cell); + // Assert size maches degree + AssertDimension (h2l.size(), dofs_per_cell); - const unsigned int dofs_per_cell = fe.dofs_per_cell; // polynomial degree - const unsigned int degree = fe.dofs_per_line+1; - // number of grid points in each direction - const unsigned int n = degree+1; + const unsigned int dofs_per_line = degree - 1; // the following lines of code are somewhat odd, due to the way the // hierarchic numbering is organized. if someone would really want to @@ -1996,29 +1988,27 @@ namespace FETools h2l[next_index++] = n*n-1; // left line - for (unsigned int i=0; i + void + hierarchic_to_lexicographic_numbering (const FiniteElementData &fe, + std::vector &h2l) + { + Assert (h2l.size() == fe.dofs_per_cell, + ExcDimensionMismatch (h2l.size(), fe.dofs_per_cell)); + hierarchic_to_lexicographic_numbering (fe.dofs_per_line+1, h2l); } + template + std::vector + hierarchic_to_lexicographic_numbering (const FiniteElementData &fe) + { + Assert (fe.n_components() == 1, ExcInvalidFE()); + std::vector h2l(fe.dofs_per_cell); + hierarchic_to_lexicographic_numbering (fe.dofs_per_line+1, h2l); + return (h2l); + } + template void lexicographic_to_hierarchic_numbering (const FiniteElementData &fe, diff --git a/deal.II/source/fe/fe_tools.inst.in b/deal.II/source/fe/fe_tools.inst.in index 3809bdd380..3d7e9c59ce 100644 --- a/deal.II/source/fe/fe_tools.inst.in +++ b/deal.II/source/fe/fe_tools.inst.in @@ -153,6 +153,12 @@ for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS FullMatrix &); #endif + template + void + hierarchic_to_lexicographic_numbering + (unsigned int, + std::vector &); + template void hierarchic_to_lexicographic_numbering diff --git a/deal.II/source/fe/fe_trace.cc b/deal.II/source/fe/fe_trace.cc new file mode 100644 index 0000000000..902ae85f0d --- /dev/null +++ b/deal.II/source/fe/fe_trace.cc @@ -0,0 +1,266 @@ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + +#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 + +DEAL_II_NAMESPACE_OPEN + +/** FE-Class for continuous face functions +* adaption of FE_Q and FE_FaceQ +*/ + +template +class FE_TraceQ : public FE_PolyFace, dim, spacedim> +{ + public: + /** + * Constructor for tensor product + * polynomials of degree + * p. The shape + * functions created using this + * constructor correspond to + * Legendre polynomials in each + * coordinate direction. + */ + FE_TraceQ(unsigned int p); + + virtual FiniteElement* clone() const; + + /** + * Return a string that uniquely + * identifies a finite + * element. This class returns + * FE_DGQ(degree) , with + * dim and degree + * replaced by appropriate + * values. + */ + virtual std::string get_name () const; + + /** + * Check for non-zero values on a face. + * + * This function returns + * @p true, if the shape + * function @p shape_index has + * non-zero values on the face + * @p face_index. + * + * Implementation of the + * interface in + * FiniteElement + */ + virtual bool has_support_on_face (const unsigned int shape_index, + const unsigned int face_index) const; + + private: + /** + * Return vector with dofs per + * vertex, line, quad, hex. + */ + static std::vector get_dpo_vector (const unsigned int deg); +}; + + +template +FE_TraceQ::FE_TraceQ (const unsigned int degree) + : + FE_PolyFace, dim, spacedim> ( + TensorProductPolynomials(Polynomials::LagrangeEquidistant::generate_complete_basis(degree)), + FiniteElementData(get_dpo_vector(degree), 1, degree, FiniteElementData::L2), + std::vector(1,true)) +{ + Assert (degree > 0, + ExcMessage ("FE_Trace can only be used for polynomial degrees " + "greater than zero")); + std::vector renumber (this->dofs_per_face); + FETools::hierarchic_to_lexicographic_numbering (degree, renumber); + this->poly_space.set_numbering(renumber); +} + + +template +FiniteElement* +FE_TraceQ::clone() const +{ + return new FE_TraceQ(this->degree); +} + + +template +std::string +FE_TraceQ::get_name () const +{ + // note that the + // FETools::get_fe_from_name + // function depends on the + // particular format of the string + // this function returns, so they + // have to be kept in synch + + std::ostringstream namebuf; + namebuf << "FE_TraceQ<" << dim << ">(" << this->degree << ")"; + + return namebuf.str(); +} + +template +bool +FE_TraceQ::has_support_on_face (const unsigned int shape_index, + const unsigned int face_index) const +{ + Assert (shape_index < this->dofs_per_cell, + ExcIndexRange (shape_index, 0, this->dofs_per_cell)); + Assert (face_index < GeometryInfo::faces_per_cell, + ExcIndexRange (face_index, 0, GeometryInfo::faces_per_cell)); + + // let's see whether this is a + // vertex + if (shape_index < this->first_line_index) + { + // for Q elements, there is + // one dof per vertex, so + // shape_index==vertex_number. check + // whether this vertex is + // on the given face. thus, + // for each face, give a + // list of vertices + const unsigned int vertex_no = shape_index; + Assert (vertex_no < GeometryInfo::vertices_per_cell, + ExcInternalError()); + + for (unsigned int v=0; v::vertices_per_face; ++v) + if (GeometryInfo::face_to_cell_vertices(face_index, v) == vertex_no) + return true; + + return false; + } + else if (shape_index < this->first_quad_index) + // ok, dof is on a line + { + const unsigned int line_index + = (shape_index - this->first_line_index) / this->dofs_per_line; + Assert (line_index < GeometryInfo::lines_per_cell, + ExcInternalError()); + + // in 2d, the line is the + // face, so get the line + // index + if (dim == 2) + return (line_index == face_index); + else if (dim == 3) + { + // see whether the + // given line is on the + // given face. + for (unsigned int l=0; l::lines_per_face; ++l) + if (GeometryInfo<3>::face_to_cell_lines(face_index, l) == line_index) + return true; + + return false; + } + else + Assert (false, ExcNotImplemented()); + } + else if (shape_index < this->first_hex_index) + // dof is on a quad + { + const unsigned int quad_index + = (shape_index - this->first_quad_index) / this->dofs_per_quad; + Assert (static_cast(quad_index) < + static_cast(GeometryInfo::quads_per_cell), + ExcInternalError()); + + // in 2d, cell bubble are + // zero on all faces. but + // we have treated this + // case above already + Assert (dim != 2, ExcInternalError()); + + // in 3d, + // quad_index=face_index + if (dim == 3) + return (quad_index == face_index); + else + Assert (false, ExcNotImplemented()); + } + else + // dof on hex + { + // can only happen in 3d, + // but this case has + // already been covered + // above + Assert (false, ExcNotImplemented()); + return false; + } + + // we should not have gotten here + Assert (false, ExcInternalError()); + return false; +} + +template +std::vector +FE_TraceQ::get_dpo_vector (const unsigned int deg) +{ + AssertThrow(deg>0,ExcMessage("FE_TraceQ needs to be of degree > 0.")); + std::vector dpo(dim+1, 1U); + dpo[dim]=0; + dpo[0]=1; + for (unsigned int i=1;i 1 + template class FE_TraceQ; +#endif + } diff --git a/tests/fe/shapes_traceq.cc b/tests/fe/shapes_traceq.cc new file mode 100644 index 0000000000..25bcc69563 --- /dev/null +++ b/tests/fe/shapes_traceq.cc @@ -0,0 +1,71 @@ +// --------------------------------------------------------------------- +// $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 "shapes.h" +//#include "../deal.II/tests/tests.h" +//#include "../deal.II/tests/fe/shapes.h" +#include +#include +#include +#include +#include +#include + +#define PRECISION 2 + + +template +void plot_FE_TraceQ_shape_functions() +{ + MappingQ1 m; + + FE_TraceQ tq1(1); + FE_TraceQ tq2(2); + FE_TraceQ tq3(3); + FE_TraceQ tq4(4); + FE_Q q1(1); + FE_Q q2(2); + FESystem sys1(tq1,1); + FESystem sys2(tq2,1); + FESystem sys11(tq1,1,q1,1); + FESystem sys22(tq2,1,q2,1); + plot_face_shape_functions(m, tq1, "TraceQ1", update_values); + plot_face_shape_functions(m, tq2, "TraceQ2", update_values); + plot_face_shape_functions(m, tq3, "TraceQ3", update_values); + plot_face_shape_functions(m, tq4, "TraceQ4", update_values); + plot_face_shape_functions(m, sys1, "System1", update_values); + plot_face_shape_functions(m, sys2, "System2", update_values); + plot_face_shape_functions(m, sys11, "System1-1", update_values); + plot_face_shape_functions(m, sys22, "System2-2", update_values); +} + + +int +main() +{ + const std::string logname = "output"; + std::ofstream logfile(logname.c_str()); + deallog << std::setprecision(PRECISION) << std::fixed; + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + plot_FE_TraceQ_shape_functions<2>(); + //plot_FE_TraceQ_shape_functions<3>(); + + return 0; +} diff --git a/tests/fe/shapes_traceq.output b/tests/fe/shapes_traceq.output new file mode 100644 index 0000000000..b71e80911e --- /dev/null +++ b/tests/fe/shapes_traceq.output @@ -0,0 +1,281 @@ + +DEAL:Face2d-TraceQ1::0.00 0.00 2.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ1::0.00 0.12 1.75 1.00 1.25 1.00 +DEAL:Face2d-TraceQ1::0.00 0.25 1.50 1.00 1.50 1.00 +DEAL:Face2d-TraceQ1::0.00 0.38 1.25 1.00 1.75 1.00 +DEAL:Face2d-TraceQ1::0.00 0.50 1.00 1.00 2.00 1.00 +DEAL:Face2d-TraceQ1:: +DEAL:Face2d-TraceQ1:: +DEAL:Face2d-TraceQ1::0.50 0.00 1.00 1.00 2.00 1.00 +DEAL:Face2d-TraceQ1::0.50 0.06 1.00 1.00 1.88 1.12 +DEAL:Face2d-TraceQ1::0.50 0.12 1.00 1.00 1.75 1.25 +DEAL:Face2d-TraceQ1::0.50 0.19 1.00 1.00 1.62 1.38 +DEAL:Face2d-TraceQ1::0.50 0.25 1.00 1.00 1.50 1.50 +DEAL:Face2d-TraceQ1:: +DEAL:Face2d-TraceQ1:: +DEAL:Face2d-TraceQ1::0.50 0.25 1.00 1.00 1.50 1.50 +DEAL:Face2d-TraceQ1::0.50 0.31 1.00 1.00 1.38 1.62 +DEAL:Face2d-TraceQ1::0.50 0.38 1.00 1.00 1.25 1.75 +DEAL:Face2d-TraceQ1::0.50 0.44 1.00 1.00 1.12 1.88 +DEAL:Face2d-TraceQ1::0.50 0.50 1.00 1.00 1.00 2.00 +DEAL:Face2d-TraceQ1:: +DEAL:Face2d-TraceQ1:: +DEAL:Face2d-TraceQ1::0.00 0.00 2.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ1::0.12 0.00 1.75 1.25 1.00 1.00 +DEAL:Face2d-TraceQ1::0.25 0.00 1.50 1.50 1.00 1.00 +DEAL:Face2d-TraceQ1::0.38 0.00 1.25 1.75 1.00 1.00 +DEAL:Face2d-TraceQ1::0.50 0.00 1.00 2.00 1.00 1.00 +DEAL:Face2d-TraceQ1:: +DEAL:Face2d-TraceQ1:: +DEAL:Face2d-TraceQ1::0.00 0.50 1.00 1.00 2.00 1.00 +DEAL:Face2d-TraceQ1::0.12 0.50 1.00 1.00 1.75 1.25 +DEAL:Face2d-TraceQ1::0.25 0.50 1.00 1.00 1.50 1.50 +DEAL:Face2d-TraceQ1::0.38 0.50 1.00 1.00 1.25 1.75 +DEAL:Face2d-TraceQ1::0.50 0.50 1.00 1.00 1.00 2.00 +DEAL:Face2d-TraceQ1:: +DEAL:Face2d-TraceQ1:: +DEAL:Face2d-TraceQ2::0.00 0.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ2::0.00 0.12 1.38 1.00 0.88 1.00 1.75 1.00 1.00 1.00 +DEAL:Face2d-TraceQ2::0.00 0.25 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ2::0.00 0.38 0.88 1.00 1.38 1.00 1.75 1.00 1.00 1.00 +DEAL:Face2d-TraceQ2::0.00 0.50 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ2:: +DEAL:Face2d-TraceQ2:: +DEAL:Face2d-TraceQ2::0.50 0.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ2::0.50 0.06 1.00 1.00 1.00 1.66 0.91 1.44 1.00 1.00 +DEAL:Face2d-TraceQ2::0.50 0.12 1.00 1.00 1.00 1.38 0.88 1.75 1.00 1.00 +DEAL:Face2d-TraceQ2::0.50 0.19 1.00 1.00 1.00 1.16 0.91 1.94 1.00 1.00 +DEAL:Face2d-TraceQ2::0.50 0.25 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 +DEAL:Face2d-TraceQ2:: +DEAL:Face2d-TraceQ2:: +DEAL:Face2d-TraceQ2::0.50 0.25 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 +DEAL:Face2d-TraceQ2::0.50 0.31 1.00 1.00 1.00 0.91 1.16 1.94 1.00 1.00 +DEAL:Face2d-TraceQ2::0.50 0.38 1.00 1.00 1.00 0.88 1.38 1.75 1.00 1.00 +DEAL:Face2d-TraceQ2::0.50 0.44 1.00 1.00 1.00 0.91 1.66 1.44 1.00 1.00 +DEAL:Face2d-TraceQ2::0.50 0.50 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ2:: +DEAL:Face2d-TraceQ2:: +DEAL:Face2d-TraceQ2::0.00 0.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ2::0.12 0.00 1.38 0.88 1.00 1.00 1.00 1.00 1.75 1.00 +DEAL:Face2d-TraceQ2::0.25 0.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 1.00 +DEAL:Face2d-TraceQ2::0.38 0.00 0.88 1.38 1.00 1.00 1.00 1.00 1.75 1.00 +DEAL:Face2d-TraceQ2::0.50 0.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ2:: +DEAL:Face2d-TraceQ2:: +DEAL:Face2d-TraceQ2::0.00 0.50 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ2::0.12 0.50 1.00 1.00 1.38 0.88 1.00 1.00 1.00 1.75 +DEAL:Face2d-TraceQ2::0.25 0.50 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 +DEAL:Face2d-TraceQ2::0.38 0.50 1.00 1.00 0.88 1.38 1.00 1.00 1.00 1.75 +DEAL:Face2d-TraceQ2::0.50 0.50 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ2:: +DEAL:Face2d-TraceQ2:: +DEAL:Face2d-TraceQ3::0.00 0.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3::0.00 0.12 1.12 1.00 1.04 1.00 2.05 0.79 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3::0.00 0.25 0.94 1.00 0.94 1.00 1.56 1.56 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3::0.00 0.38 1.04 1.00 1.12 1.00 0.79 2.05 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3::0.00 0.50 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3:: +DEAL:Face2d-TraceQ3:: +DEAL:Face2d-TraceQ3::0.50 0.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3::0.50 0.06 1.00 1.00 1.00 1.00 1.44 1.06 1.80 0.69 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3::0.50 0.12 1.00 1.00 1.00 1.00 1.12 1.04 2.05 0.79 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3::0.50 0.19 1.00 1.00 1.00 1.00 0.97 0.98 1.92 1.13 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3::0.50 0.25 1.00 1.00 1.00 1.00 0.94 0.94 1.56 1.56 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3:: +DEAL:Face2d-TraceQ3:: +DEAL:Face2d-TraceQ3::0.50 0.25 1.00 1.00 1.00 1.00 0.94 0.94 1.56 1.56 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3::0.50 0.31 1.00 1.00 1.00 1.00 0.98 0.97 1.13 1.92 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3::0.50 0.38 1.00 1.00 1.00 1.00 1.04 1.12 0.79 2.05 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3::0.50 0.44 1.00 1.00 1.00 1.00 1.06 1.44 0.69 1.80 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3::0.50 0.50 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3:: +DEAL:Face2d-TraceQ3:: +DEAL:Face2d-TraceQ3::0.00 0.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3::0.12 0.00 1.12 1.04 1.00 1.00 1.00 1.00 1.00 1.00 2.05 0.79 1.00 1.00 +DEAL:Face2d-TraceQ3::0.25 0.00 0.94 0.94 1.00 1.00 1.00 1.00 1.00 1.00 1.56 1.56 1.00 1.00 +DEAL:Face2d-TraceQ3::0.38 0.00 1.04 1.12 1.00 1.00 1.00 1.00 1.00 1.00 0.79 2.05 1.00 1.00 +DEAL:Face2d-TraceQ3::0.50 0.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3:: +DEAL:Face2d-TraceQ3:: +DEAL:Face2d-TraceQ3::0.00 0.50 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3::0.12 0.50 1.00 1.00 1.12 1.04 1.00 1.00 1.00 1.00 1.00 1.00 2.05 0.79 +DEAL:Face2d-TraceQ3::0.25 0.50 1.00 1.00 0.94 0.94 1.00 1.00 1.00 1.00 1.00 1.00 1.56 1.56 +DEAL:Face2d-TraceQ3::0.38 0.50 1.00 1.00 1.04 1.12 1.00 1.00 1.00 1.00 1.00 1.00 0.79 2.05 +DEAL:Face2d-TraceQ3::0.50 0.50 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ3:: +DEAL:Face2d-TraceQ3:: +DEAL:Face2d-TraceQ4::0.00 0.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.00 0.12 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.00 0.25 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.00 0.38 1.00 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.00 0.50 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4:: +DEAL:Face2d-TraceQ4:: +DEAL:Face2d-TraceQ4::0.50 0.00 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.50 0.06 1.00 1.00 1.00 1.00 1.00 1.27 0.96 2.09 0.45 1.22 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.50 0.12 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.50 0.19 1.00 1.00 1.00 1.00 1.00 0.96 1.02 1.47 1.70 0.84 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.50 0.25 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4:: +DEAL:Face2d-TraceQ4:: +DEAL:Face2d-TraceQ4::0.50 0.25 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.50 0.31 1.00 1.00 1.00 1.00 1.00 1.02 0.96 0.84 1.70 1.47 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.50 0.38 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.50 0.44 1.00 1.00 1.00 1.00 1.00 0.96 1.27 1.22 0.45 2.09 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.50 0.50 1.00 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4:: +DEAL:Face2d-TraceQ4:: +DEAL:Face2d-TraceQ4::0.00 0.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.12 0.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.25 0.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.38 0.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.50 0.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4:: +DEAL:Face2d-TraceQ4:: +DEAL:Face2d-TraceQ4::0.00 0.50 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.12 0.50 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 +DEAL:Face2d-TraceQ4::0.25 0.50 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 1.00 +DEAL:Face2d-TraceQ4::0.38 0.50 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 +DEAL:Face2d-TraceQ4::0.50 0.50 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-TraceQ4:: +DEAL:Face2d-TraceQ4:: +DEAL:Face2d-System1::0.00 0.00 2.00 1.00 1.00 1.00 +DEAL:Face2d-System1::0.00 0.12 1.75 1.00 1.25 1.00 +DEAL:Face2d-System1::0.00 0.25 1.50 1.00 1.50 1.00 +DEAL:Face2d-System1::0.00 0.38 1.25 1.00 1.75 1.00 +DEAL:Face2d-System1::0.00 0.50 1.00 1.00 2.00 1.00 +DEAL:Face2d-System1:: +DEAL:Face2d-System1:: +DEAL:Face2d-System1::0.50 0.00 1.00 1.00 2.00 1.00 +DEAL:Face2d-System1::0.50 0.06 1.00 1.00 1.88 1.12 +DEAL:Face2d-System1::0.50 0.12 1.00 1.00 1.75 1.25 +DEAL:Face2d-System1::0.50 0.19 1.00 1.00 1.62 1.38 +DEAL:Face2d-System1::0.50 0.25 1.00 1.00 1.50 1.50 +DEAL:Face2d-System1:: +DEAL:Face2d-System1:: +DEAL:Face2d-System1::0.50 0.25 1.00 1.00 1.50 1.50 +DEAL:Face2d-System1::0.50 0.31 1.00 1.00 1.38 1.62 +DEAL:Face2d-System1::0.50 0.38 1.00 1.00 1.25 1.75 +DEAL:Face2d-System1::0.50 0.44 1.00 1.00 1.12 1.88 +DEAL:Face2d-System1::0.50 0.50 1.00 1.00 1.00 2.00 +DEAL:Face2d-System1:: +DEAL:Face2d-System1:: +DEAL:Face2d-System1::0.00 0.00 2.00 1.00 1.00 1.00 +DEAL:Face2d-System1::0.12 0.00 1.75 1.25 1.00 1.00 +DEAL:Face2d-System1::0.25 0.00 1.50 1.50 1.00 1.00 +DEAL:Face2d-System1::0.38 0.00 1.25 1.75 1.00 1.00 +DEAL:Face2d-System1::0.50 0.00 1.00 2.00 1.00 1.00 +DEAL:Face2d-System1:: +DEAL:Face2d-System1:: +DEAL:Face2d-System1::0.00 0.50 1.00 1.00 2.00 1.00 +DEAL:Face2d-System1::0.12 0.50 1.00 1.00 1.75 1.25 +DEAL:Face2d-System1::0.25 0.50 1.00 1.00 1.50 1.50 +DEAL:Face2d-System1::0.38 0.50 1.00 1.00 1.25 1.75 +DEAL:Face2d-System1::0.50 0.50 1.00 1.00 1.00 2.00 +DEAL:Face2d-System1:: +DEAL:Face2d-System1:: +DEAL:Face2d-System2::0.00 0.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2::0.00 0.12 1.38 1.00 0.88 1.00 1.75 1.00 1.00 1.00 +DEAL:Face2d-System2::0.00 0.25 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 +DEAL:Face2d-System2::0.00 0.38 0.88 1.00 1.38 1.00 1.75 1.00 1.00 1.00 +DEAL:Face2d-System2::0.00 0.50 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2:: +DEAL:Face2d-System2:: +DEAL:Face2d-System2::0.50 0.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2::0.50 0.06 1.00 1.00 1.00 1.66 0.91 1.44 1.00 1.00 +DEAL:Face2d-System2::0.50 0.12 1.00 1.00 1.00 1.38 0.88 1.75 1.00 1.00 +DEAL:Face2d-System2::0.50 0.19 1.00 1.00 1.00 1.16 0.91 1.94 1.00 1.00 +DEAL:Face2d-System2::0.50 0.25 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 +DEAL:Face2d-System2:: +DEAL:Face2d-System2:: +DEAL:Face2d-System2::0.50 0.25 1.00 1.00 1.00 1.00 1.00 2.00 1.00 1.00 +DEAL:Face2d-System2::0.50 0.31 1.00 1.00 1.00 0.91 1.16 1.94 1.00 1.00 +DEAL:Face2d-System2::0.50 0.38 1.00 1.00 1.00 0.88 1.38 1.75 1.00 1.00 +DEAL:Face2d-System2::0.50 0.44 1.00 1.00 1.00 0.91 1.66 1.44 1.00 1.00 +DEAL:Face2d-System2::0.50 0.50 1.00 1.00 1.00 1.00 2.00 1.00 1.00 1.00 +DEAL:Face2d-System2:: +DEAL:Face2d-System2:: +DEAL:Face2d-System2::0.00 0.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2::0.12 0.00 1.38 0.88 1.00 1.00 1.00 1.00 1.75 1.00 +DEAL:Face2d-System2::0.25 0.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 1.00 +DEAL:Face2d-System2::0.38 0.00 0.88 1.38 1.00 1.00 1.00 1.00 1.75 1.00 +DEAL:Face2d-System2::0.50 0.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2:: +DEAL:Face2d-System2:: +DEAL:Face2d-System2::0.00 0.50 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2::0.12 0.50 1.00 1.00 1.38 0.88 1.00 1.00 1.00 1.75 +DEAL:Face2d-System2::0.25 0.50 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 +DEAL:Face2d-System2::0.38 0.50 1.00 1.00 0.88 1.38 1.00 1.00 1.00 1.75 +DEAL:Face2d-System2::0.50 0.50 1.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2:: +DEAL:Face2d-System2:: +DEAL:Face2d-System1-1::0.00 0.00 2.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System1-1::0.00 0.12 1.75 1.75 1.00 1.00 1.25 1.25 1.00 1.00 +DEAL:Face2d-System1-1::0.00 0.25 1.50 1.50 1.00 1.00 1.50 1.50 1.00 1.00 +DEAL:Face2d-System1-1::0.00 0.38 1.25 1.25 1.00 1.00 1.75 1.75 1.00 1.00 +DEAL:Face2d-System1-1::0.00 0.50 1.00 1.00 1.00 1.00 2.00 2.00 1.00 1.00 +DEAL:Face2d-System1-1:: +DEAL:Face2d-System1-1:: +DEAL:Face2d-System1-1::0.50 0.00 1.00 1.00 1.00 2.00 2.00 1.00 1.00 1.00 +DEAL:Face2d-System1-1::0.50 0.06 1.00 1.00 1.00 1.88 1.88 1.00 1.12 1.12 +DEAL:Face2d-System1-1::0.50 0.12 1.00 1.00 1.00 1.75 1.75 1.00 1.25 1.25 +DEAL:Face2d-System1-1::0.50 0.19 1.00 1.00 1.00 1.62 1.62 1.00 1.38 1.38 +DEAL:Face2d-System1-1::0.50 0.25 1.00 1.00 1.00 1.50 1.50 1.00 1.50 1.50 +DEAL:Face2d-System1-1:: +DEAL:Face2d-System1-1:: +DEAL:Face2d-System1-1::0.50 0.25 1.00 1.00 1.00 1.50 1.50 1.00 1.50 1.50 +DEAL:Face2d-System1-1::0.50 0.31 1.00 1.00 1.00 1.38 1.38 1.00 1.62 1.62 +DEAL:Face2d-System1-1::0.50 0.38 1.00 1.00 1.00 1.25 1.25 1.00 1.75 1.75 +DEAL:Face2d-System1-1::0.50 0.44 1.00 1.00 1.00 1.12 1.12 1.00 1.88 1.88 +DEAL:Face2d-System1-1::0.50 0.50 1.00 1.00 1.00 1.00 1.00 1.00 2.00 2.00 +DEAL:Face2d-System1-1:: +DEAL:Face2d-System1-1:: +DEAL:Face2d-System1-1::0.00 0.00 2.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System1-1::0.12 0.00 1.75 1.75 1.25 1.25 1.00 1.00 1.00 1.00 +DEAL:Face2d-System1-1::0.25 0.00 1.50 1.50 1.50 1.50 1.00 1.00 1.00 1.00 +DEAL:Face2d-System1-1::0.38 0.00 1.25 1.25 1.75 1.75 1.00 1.00 1.00 1.00 +DEAL:Face2d-System1-1::0.50 0.00 1.00 1.00 2.00 2.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System1-1:: +DEAL:Face2d-System1-1:: +DEAL:Face2d-System1-1::0.00 0.50 1.00 1.00 1.00 1.00 2.00 2.00 1.00 1.00 +DEAL:Face2d-System1-1::0.12 0.50 1.00 1.00 1.00 1.00 1.75 1.75 1.25 1.25 +DEAL:Face2d-System1-1::0.25 0.50 1.00 1.00 1.00 1.00 1.50 1.50 1.50 1.50 +DEAL:Face2d-System1-1::0.38 0.50 1.00 1.00 1.00 1.00 1.25 1.25 1.75 1.75 +DEAL:Face2d-System1-1::0.50 0.50 1.00 1.00 1.00 1.00 1.00 1.00 2.00 2.00 +DEAL:Face2d-System1-1:: +DEAL:Face2d-System1-1:: +DEAL:Face2d-System2-2::0.00 0.00 2.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.00 0.12 1.38 1.38 1.00 1.00 0.88 0.88 1.00 1.00 1.75 1.75 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.00 0.25 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.00 0.38 0.88 0.88 1.00 1.00 1.38 1.38 1.00 1.00 1.75 1.75 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.00 0.50 1.00 1.00 1.00 1.00 2.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2:: +DEAL:Face2d-System2-2:: +DEAL:Face2d-System2-2::0.50 0.00 1.00 1.00 1.00 2.00 1.00 1.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.50 0.06 1.00 1.00 1.00 1.66 1.00 1.00 1.66 0.91 0.91 1.00 1.44 1.44 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.50 0.12 1.00 1.00 1.00 1.38 1.00 1.00 1.38 0.88 0.88 1.00 1.75 1.75 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.50 0.19 1.00 1.00 1.00 1.16 1.00 1.00 1.16 0.91 0.91 1.00 1.94 1.94 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.50 0.25 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 2.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2:: +DEAL:Face2d-System2-2:: +DEAL:Face2d-System2-2::0.50 0.25 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 2.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.50 0.31 1.00 1.00 1.00 0.91 1.00 1.00 0.91 1.16 1.16 1.00 1.94 1.94 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.50 0.38 1.00 1.00 1.00 0.88 1.00 1.00 0.88 1.38 1.38 1.00 1.75 1.75 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.50 0.44 1.00 1.00 1.00 0.91 1.00 1.00 0.91 1.66 1.66 1.00 1.44 1.44 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.50 0.50 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2:: +DEAL:Face2d-System2-2:: +DEAL:Face2d-System2-2::0.00 0.00 2.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.12 0.00 1.38 1.38 0.88 0.88 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.75 1.75 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.25 0.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 2.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.38 0.00 0.88 0.88 1.38 1.38 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.75 1.75 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.50 0.00 1.00 1.00 2.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2:: +DEAL:Face2d-System2-2:: +DEAL:Face2d-System2-2::0.00 0.50 1.00 1.00 1.00 1.00 2.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2::0.12 0.50 1.00 1.00 1.00 1.00 1.38 1.38 0.88 0.88 1.00 1.00 1.00 1.00 1.00 1.00 1.75 1.75 1.00 +DEAL:Face2d-System2-2::0.25 0.50 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 2.00 2.00 1.00 +DEAL:Face2d-System2-2::0.38 0.50 1.00 1.00 1.00 1.00 0.88 0.88 1.38 1.38 1.00 1.00 1.00 1.00 1.00 1.00 1.75 1.75 1.00 +DEAL:Face2d-System2-2::0.50 0.50 1.00 1.00 1.00 1.00 1.00 1.00 2.00 2.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 +DEAL:Face2d-System2-2:: +DEAL:Face2d-System2-2:: -- 2.39.5