From: Dominik Still Date: Fri, 2 May 2025 11:09:30 +0000 (+0200) Subject: Enable subface quadratures for triangles X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=560b90c943e348ba8c40383c5a05ff2e10f4d4af;p=dealii.git Enable subface quadratures for triangles --- diff --git a/source/base/qprojector.cc b/source/base/qprojector.cc index e4f96c006e..dd2bfdbbe7 100644 --- a/source/base/qprojector.cc +++ b/source/base/qprojector.cc @@ -701,6 +701,8 @@ QProjector::project_to_subface( std::reverse(q_points.begin(), q_points.end()); std::reverse(q_weights.begin(), q_weights.end()); } + for (auto &w : q_weights) + w *= reference_cell.face_measure(face_no); } else if constexpr (dim == 3) { @@ -806,11 +808,9 @@ Quadrature<2> QProjector<2>::project_to_all_subfaces(const ReferenceCell &reference_cell, const SubQuadrature &quadrature) { - if (reference_cell == ReferenceCells::Triangle || - reference_cell == ReferenceCells::Tetrahedron) - return Quadrature<2>(); // nothing to do - - Assert(reference_cell == ReferenceCells::Quadrilateral, ExcNotImplemented()); + Assert(reference_cell == ReferenceCells::Quadrilateral || + reference_cell == ReferenceCells::Triangle, + ExcNotImplemented()); const unsigned int dim = 2; @@ -1154,7 +1154,9 @@ QProjector<2>::DataSetDescriptor::subface( const unsigned int n_quadrature_points, const internal::SubfaceCase<2>) { - Assert(reference_cell == ReferenceCells::Quadrilateral, ExcNotImplemented()); + Assert(reference_cell == ReferenceCells::Quadrilateral || + reference_cell == ReferenceCells::Triangle, + ExcNotImplemented()); const unsigned int n_faces = reference_cell.n_faces(); const unsigned int n_subfaces = diff --git a/source/fe/mapping_fe.cc b/source/fe/mapping_fe.cc index 65be199d1e..cbb2fa2b65 100644 --- a/source/fe/mapping_fe.cc +++ b/source/fe/mapping_fe.cc @@ -1468,14 +1468,16 @@ namespace internal if (subface_no != numbers::invalid_unsigned_int) { -#if false - const double area_ratio = - GeometryInfo::subface_ratio( - cell->subface_case(face_no), subface_no); - output_data.JxW_values[i] *= area_ratio; -#else - DEAL_II_NOT_IMPLEMENTED(); -#endif + if (dim == 2) + { + const double area_ratio = + 1. / cell->reference_cell() + .face_reference_cell(face_no) + .n_isotropic_children(); + output_data.JxW_values[i] *= area_ratio; + } + else + DEAL_II_NOT_IMPLEMENTED(); } } diff --git a/tests/simplex/q_projection_02.cc b/tests/simplex/q_projection_02.cc new file mode 100644 index 0000000000..740e0ebc5a --- /dev/null +++ b/tests/simplex/q_projection_02.cc @@ -0,0 +1,141 @@ +// ------------------------------------------------------------------------ +// +// SPDX-License-Identifier: LGPL-2.1-or-later +// Copyright (C) 2020 - 2025 by the deal.II authors +// +// This file is part of the deal.II library. +// +// Part of the source code is dual licensed under Apache-2.0 WITH +// LLVM-exception OR LGPL-2.1-or-later. Detailed license information +// governing the source code and code contributions can be found in +// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II. +// +// ------------------------------------------------------------------------ + + +// Like q_projection_01 but test project_to_all_subfaces +// Test QProjection for QGaussSimplex. + + +#include +#include + +#include + +#include "../tests.h" + + +template +void +test(const unsigned int) +{ + AssertThrow(false, ExcNotImplemented()); +} + +template <> +void +test<2>(const unsigned int n_points) +{ + const int dim = 2; + + QGaussSimplex quad_ref(n_points); + + // test: QProjector::project_to_all_subfaces + { + deallog.push("project_to_all_subfaces"); + + const auto quad = + QProjector::project_to_all_subfaces(ReferenceCells::Triangle, + quad_ref); + + for (unsigned int q = 0; q < quad.size(); ++q) + { + deallog << quad.point(q) << ' '; + deallog << quad.weight(q) << ' '; + deallog << std::endl; + } + deallog << std::endl; + + deallog << std::endl; + deallog.pop(); + } + + + // test unsigned int DataSetDescriptor::subface + { + deallog.push("DataSetDescriptor::subface"); + const unsigned int nq = quad_ref.size(); + for (const unsigned int face_no : + ReferenceCells::get_simplex().face_indices()) + for (unsigned int o = 0; o < 2; ++o) + for (unsigned int subface_no = 0; subface_no < 2; ++subface_no) + { + unsigned int offset = QProjector::DataSetDescriptor::subface( + ReferenceCells::get_simplex(), face_no, subface_no, o, nq); + deallog << "Face:" << face_no << " subface:" << subface_no + << " orientation:" << o << " offset:" << offset + << std::endl; + } + deallog.pop(); + } + + { + const auto quad = + QProjector::project_to_all_subfaces(ReferenceCells::Triangle, + quad_ref); + + const auto print = [&](const unsigned int face_no, + const unsigned int subface_no, + const unsigned int face_orientation) { + deallog << "face_no=" << face_no << " subface_no=" << subface_no + << " face_orientation=" << face_orientation << ':' << std::endl; + for (unsigned int q = 0, + i = QProjector::DataSetDescriptor::subface( + ReferenceCells::Triangle, + face_no, + subface_no, + face_orientation, + false, + false, + quad_ref.size()); + q < quad_ref.size(); + ++q, ++i) + { + deallog << quad.point(i) << ' '; + deallog << quad.weight(i) << ' '; + deallog << std::endl; + } + deallog << std::endl; + }; + + // Loop over faces and loop over subfaces + for (unsigned int i = 0; i < 3; ++i) + for (unsigned int j = 0; j < 2; ++j) + { + print(i, j, 0); + print(i, j, 1); + } + } +} + +int +main() +{ + initlog(); + + { + deallog.push("2d-1"); + test<2>(1); + deallog.pop(); + } + { + deallog.push("2d-2"); + test<2>(2); + deallog.pop(); + } + { + deallog.push("2d-3"); + test<2>(3); + deallog.pop(); + } +} diff --git a/tests/simplex/q_projection_02.output b/tests/simplex/q_projection_02.output new file mode 100644 index 0000000000..a7796e39fb --- /dev/null +++ b/tests/simplex/q_projection_02.output @@ -0,0 +1,259 @@ + +DEAL:2d-1:project_to_all_subfaces::0.250000 0.00000 1.00000 +DEAL:2d-1:project_to_all_subfaces::0.750000 0.00000 1.00000 +DEAL:2d-1:project_to_all_subfaces::0.750000 0.00000 1.00000 +DEAL:2d-1:project_to_all_subfaces::0.250000 0.00000 1.00000 +DEAL:2d-1:project_to_all_subfaces::0.750000 0.250000 1.41421 +DEAL:2d-1:project_to_all_subfaces::0.250000 0.750000 1.41421 +DEAL:2d-1:project_to_all_subfaces::0.250000 0.750000 1.41421 +DEAL:2d-1:project_to_all_subfaces::0.750000 0.250000 1.41421 +DEAL:2d-1:project_to_all_subfaces::0.00000 0.750000 1.00000 +DEAL:2d-1:project_to_all_subfaces::0.00000 0.250000 1.00000 +DEAL:2d-1:project_to_all_subfaces::0.00000 0.250000 1.00000 +DEAL:2d-1:project_to_all_subfaces::0.00000 0.750000 1.00000 +DEAL:2d-1:project_to_all_subfaces:: +DEAL:2d-1:project_to_all_subfaces:: +DEAL:2d-1:DataSetDescriptor::subface::Face:0 subface:0 orientation:0 offset:0 +DEAL:2d-1:DataSetDescriptor::subface::Face:0 subface:1 orientation:0 offset:1 +DEAL:2d-1:DataSetDescriptor::subface::Face:0 subface:0 orientation:1 offset:2 +DEAL:2d-1:DataSetDescriptor::subface::Face:0 subface:1 orientation:1 offset:3 +DEAL:2d-1:DataSetDescriptor::subface::Face:1 subface:0 orientation:0 offset:4 +DEAL:2d-1:DataSetDescriptor::subface::Face:1 subface:1 orientation:0 offset:5 +DEAL:2d-1:DataSetDescriptor::subface::Face:1 subface:0 orientation:1 offset:6 +DEAL:2d-1:DataSetDescriptor::subface::Face:1 subface:1 orientation:1 offset:7 +DEAL:2d-1:DataSetDescriptor::subface::Face:2 subface:0 orientation:0 offset:8 +DEAL:2d-1:DataSetDescriptor::subface::Face:2 subface:1 orientation:0 offset:9 +DEAL:2d-1:DataSetDescriptor::subface::Face:2 subface:0 orientation:1 offset:10 +DEAL:2d-1:DataSetDescriptor::subface::Face:2 subface:1 orientation:1 offset:11 +DEAL:2d-1::face_no=0 subface_no=0 face_orientation=0: +DEAL:2d-1::0.750000 0.00000 1.00000 +DEAL:2d-1:: +DEAL:2d-1::face_no=0 subface_no=0 face_orientation=1: +DEAL:2d-1::0.250000 0.00000 1.00000 +DEAL:2d-1:: +DEAL:2d-1::face_no=0 subface_no=1 face_orientation=0: +DEAL:2d-1::0.250000 0.00000 1.00000 +DEAL:2d-1:: +DEAL:2d-1::face_no=0 subface_no=1 face_orientation=1: +DEAL:2d-1::0.750000 0.00000 1.00000 +DEAL:2d-1:: +DEAL:2d-1::face_no=1 subface_no=0 face_orientation=0: +DEAL:2d-1::0.250000 0.750000 1.41421 +DEAL:2d-1:: +DEAL:2d-1::face_no=1 subface_no=0 face_orientation=1: +DEAL:2d-1::0.750000 0.250000 1.41421 +DEAL:2d-1:: +DEAL:2d-1::face_no=1 subface_no=1 face_orientation=0: +DEAL:2d-1::0.750000 0.250000 1.41421 +DEAL:2d-1:: +DEAL:2d-1::face_no=1 subface_no=1 face_orientation=1: +DEAL:2d-1::0.250000 0.750000 1.41421 +DEAL:2d-1:: +DEAL:2d-1::face_no=2 subface_no=0 face_orientation=0: +DEAL:2d-1::0.00000 0.250000 1.00000 +DEAL:2d-1:: +DEAL:2d-1::face_no=2 subface_no=0 face_orientation=1: +DEAL:2d-1::0.00000 0.750000 1.00000 +DEAL:2d-1:: +DEAL:2d-1::face_no=2 subface_no=1 face_orientation=0: +DEAL:2d-1::0.00000 0.750000 1.00000 +DEAL:2d-1:: +DEAL:2d-1::face_no=2 subface_no=1 face_orientation=1: +DEAL:2d-1::0.00000 0.250000 1.00000 +DEAL:2d-1:: +DEAL:2d-2:project_to_all_subfaces::0.105662 0.00000 0.500000 +DEAL:2d-2:project_to_all_subfaces::0.394338 0.00000 0.500000 +DEAL:2d-2:project_to_all_subfaces::0.605662 0.00000 0.500000 +DEAL:2d-2:project_to_all_subfaces::0.894338 0.00000 0.500000 +DEAL:2d-2:project_to_all_subfaces::0.894338 0.00000 0.500000 +DEAL:2d-2:project_to_all_subfaces::0.605662 0.00000 0.500000 +DEAL:2d-2:project_to_all_subfaces::0.394338 0.00000 0.500000 +DEAL:2d-2:project_to_all_subfaces::0.105662 0.00000 0.500000 +DEAL:2d-2:project_to_all_subfaces::0.894338 0.105662 0.707107 +DEAL:2d-2:project_to_all_subfaces::0.605662 0.394338 0.707107 +DEAL:2d-2:project_to_all_subfaces::0.394338 0.605662 0.707107 +DEAL:2d-2:project_to_all_subfaces::0.105662 0.894338 0.707107 +DEAL:2d-2:project_to_all_subfaces::0.105662 0.894338 0.707107 +DEAL:2d-2:project_to_all_subfaces::0.394338 0.605662 0.707107 +DEAL:2d-2:project_to_all_subfaces::0.605662 0.394338 0.707107 +DEAL:2d-2:project_to_all_subfaces::0.894338 0.105662 0.707107 +DEAL:2d-2:project_to_all_subfaces::0.00000 0.894338 0.500000 +DEAL:2d-2:project_to_all_subfaces::0.00000 0.605662 0.500000 +DEAL:2d-2:project_to_all_subfaces::0.00000 0.394338 0.500000 +DEAL:2d-2:project_to_all_subfaces::0.00000 0.105662 0.500000 +DEAL:2d-2:project_to_all_subfaces::0.00000 0.105662 0.500000 +DEAL:2d-2:project_to_all_subfaces::0.00000 0.394338 0.500000 +DEAL:2d-2:project_to_all_subfaces::0.00000 0.605662 0.500000 +DEAL:2d-2:project_to_all_subfaces::0.00000 0.894338 0.500000 +DEAL:2d-2:project_to_all_subfaces:: +DEAL:2d-2:project_to_all_subfaces:: +DEAL:2d-2:DataSetDescriptor::subface::Face:0 subface:0 orientation:0 offset:0 +DEAL:2d-2:DataSetDescriptor::subface::Face:0 subface:1 orientation:0 offset:2 +DEAL:2d-2:DataSetDescriptor::subface::Face:0 subface:0 orientation:1 offset:4 +DEAL:2d-2:DataSetDescriptor::subface::Face:0 subface:1 orientation:1 offset:6 +DEAL:2d-2:DataSetDescriptor::subface::Face:1 subface:0 orientation:0 offset:8 +DEAL:2d-2:DataSetDescriptor::subface::Face:1 subface:1 orientation:0 offset:10 +DEAL:2d-2:DataSetDescriptor::subface::Face:1 subface:0 orientation:1 offset:12 +DEAL:2d-2:DataSetDescriptor::subface::Face:1 subface:1 orientation:1 offset:14 +DEAL:2d-2:DataSetDescriptor::subface::Face:2 subface:0 orientation:0 offset:16 +DEAL:2d-2:DataSetDescriptor::subface::Face:2 subface:1 orientation:0 offset:18 +DEAL:2d-2:DataSetDescriptor::subface::Face:2 subface:0 orientation:1 offset:20 +DEAL:2d-2:DataSetDescriptor::subface::Face:2 subface:1 orientation:1 offset:22 +DEAL:2d-2::face_no=0 subface_no=0 face_orientation=0: +DEAL:2d-2::0.894338 0.00000 0.500000 +DEAL:2d-2::0.605662 0.00000 0.500000 +DEAL:2d-2:: +DEAL:2d-2::face_no=0 subface_no=0 face_orientation=1: +DEAL:2d-2::0.105662 0.00000 0.500000 +DEAL:2d-2::0.394338 0.00000 0.500000 +DEAL:2d-2:: +DEAL:2d-2::face_no=0 subface_no=1 face_orientation=0: +DEAL:2d-2::0.394338 0.00000 0.500000 +DEAL:2d-2::0.105662 0.00000 0.500000 +DEAL:2d-2:: +DEAL:2d-2::face_no=0 subface_no=1 face_orientation=1: +DEAL:2d-2::0.605662 0.00000 0.500000 +DEAL:2d-2::0.894338 0.00000 0.500000 +DEAL:2d-2:: +DEAL:2d-2::face_no=1 subface_no=0 face_orientation=0: +DEAL:2d-2::0.105662 0.894338 0.707107 +DEAL:2d-2::0.394338 0.605662 0.707107 +DEAL:2d-2:: +DEAL:2d-2::face_no=1 subface_no=0 face_orientation=1: +DEAL:2d-2::0.894338 0.105662 0.707107 +DEAL:2d-2::0.605662 0.394338 0.707107 +DEAL:2d-2:: +DEAL:2d-2::face_no=1 subface_no=1 face_orientation=0: +DEAL:2d-2::0.605662 0.394338 0.707107 +DEAL:2d-2::0.894338 0.105662 0.707107 +DEAL:2d-2:: +DEAL:2d-2::face_no=1 subface_no=1 face_orientation=1: +DEAL:2d-2::0.394338 0.605662 0.707107 +DEAL:2d-2::0.105662 0.894338 0.707107 +DEAL:2d-2:: +DEAL:2d-2::face_no=2 subface_no=0 face_orientation=0: +DEAL:2d-2::0.00000 0.105662 0.500000 +DEAL:2d-2::0.00000 0.394338 0.500000 +DEAL:2d-2:: +DEAL:2d-2::face_no=2 subface_no=0 face_orientation=1: +DEAL:2d-2::0.00000 0.894338 0.500000 +DEAL:2d-2::0.00000 0.605662 0.500000 +DEAL:2d-2:: +DEAL:2d-2::face_no=2 subface_no=1 face_orientation=0: +DEAL:2d-2::0.00000 0.605662 0.500000 +DEAL:2d-2::0.00000 0.894338 0.500000 +DEAL:2d-2:: +DEAL:2d-2::face_no=2 subface_no=1 face_orientation=1: +DEAL:2d-2::0.00000 0.394338 0.500000 +DEAL:2d-2::0.00000 0.105662 0.500000 +DEAL:2d-2:: +DEAL:2d-3:project_to_all_subfaces::0.0563508 0.00000 0.277778 +DEAL:2d-3:project_to_all_subfaces::0.250000 0.00000 0.444444 +DEAL:2d-3:project_to_all_subfaces::0.443649 0.00000 0.277778 +DEAL:2d-3:project_to_all_subfaces::0.556351 0.00000 0.277778 +DEAL:2d-3:project_to_all_subfaces::0.750000 0.00000 0.444444 +DEAL:2d-3:project_to_all_subfaces::0.943649 0.00000 0.277778 +DEAL:2d-3:project_to_all_subfaces::0.943649 0.00000 0.277778 +DEAL:2d-3:project_to_all_subfaces::0.750000 0.00000 0.444444 +DEAL:2d-3:project_to_all_subfaces::0.556351 0.00000 0.277778 +DEAL:2d-3:project_to_all_subfaces::0.443649 0.00000 0.277778 +DEAL:2d-3:project_to_all_subfaces::0.250000 0.00000 0.444444 +DEAL:2d-3:project_to_all_subfaces::0.0563508 0.00000 0.277778 +DEAL:2d-3:project_to_all_subfaces::0.943649 0.0563508 0.392837 +DEAL:2d-3:project_to_all_subfaces::0.750000 0.250000 0.628539 +DEAL:2d-3:project_to_all_subfaces::0.556351 0.443649 0.392837 +DEAL:2d-3:project_to_all_subfaces::0.443649 0.556351 0.392837 +DEAL:2d-3:project_to_all_subfaces::0.250000 0.750000 0.628539 +DEAL:2d-3:project_to_all_subfaces::0.0563508 0.943649 0.392837 +DEAL:2d-3:project_to_all_subfaces::0.0563508 0.943649 0.392837 +DEAL:2d-3:project_to_all_subfaces::0.250000 0.750000 0.628539 +DEAL:2d-3:project_to_all_subfaces::0.443649 0.556351 0.392837 +DEAL:2d-3:project_to_all_subfaces::0.556351 0.443649 0.392837 +DEAL:2d-3:project_to_all_subfaces::0.750000 0.250000 0.628539 +DEAL:2d-3:project_to_all_subfaces::0.943649 0.0563508 0.392837 +DEAL:2d-3:project_to_all_subfaces::0.00000 0.943649 0.277778 +DEAL:2d-3:project_to_all_subfaces::0.00000 0.750000 0.444444 +DEAL:2d-3:project_to_all_subfaces::0.00000 0.556351 0.277778 +DEAL:2d-3:project_to_all_subfaces::0.00000 0.443649 0.277778 +DEAL:2d-3:project_to_all_subfaces::0.00000 0.250000 0.444444 +DEAL:2d-3:project_to_all_subfaces::0.00000 0.0563508 0.277778 +DEAL:2d-3:project_to_all_subfaces::0.00000 0.0563508 0.277778 +DEAL:2d-3:project_to_all_subfaces::0.00000 0.250000 0.444444 +DEAL:2d-3:project_to_all_subfaces::0.00000 0.443649 0.277778 +DEAL:2d-3:project_to_all_subfaces::0.00000 0.556351 0.277778 +DEAL:2d-3:project_to_all_subfaces::0.00000 0.750000 0.444444 +DEAL:2d-3:project_to_all_subfaces::0.00000 0.943649 0.277778 +DEAL:2d-3:project_to_all_subfaces:: +DEAL:2d-3:project_to_all_subfaces:: +DEAL:2d-3:DataSetDescriptor::subface::Face:0 subface:0 orientation:0 offset:0 +DEAL:2d-3:DataSetDescriptor::subface::Face:0 subface:1 orientation:0 offset:3 +DEAL:2d-3:DataSetDescriptor::subface::Face:0 subface:0 orientation:1 offset:6 +DEAL:2d-3:DataSetDescriptor::subface::Face:0 subface:1 orientation:1 offset:9 +DEAL:2d-3:DataSetDescriptor::subface::Face:1 subface:0 orientation:0 offset:12 +DEAL:2d-3:DataSetDescriptor::subface::Face:1 subface:1 orientation:0 offset:15 +DEAL:2d-3:DataSetDescriptor::subface::Face:1 subface:0 orientation:1 offset:18 +DEAL:2d-3:DataSetDescriptor::subface::Face:1 subface:1 orientation:1 offset:21 +DEAL:2d-3:DataSetDescriptor::subface::Face:2 subface:0 orientation:0 offset:24 +DEAL:2d-3:DataSetDescriptor::subface::Face:2 subface:1 orientation:0 offset:27 +DEAL:2d-3:DataSetDescriptor::subface::Face:2 subface:0 orientation:1 offset:30 +DEAL:2d-3:DataSetDescriptor::subface::Face:2 subface:1 orientation:1 offset:33 +DEAL:2d-3::face_no=0 subface_no=0 face_orientation=0: +DEAL:2d-3::0.943649 0.00000 0.277778 +DEAL:2d-3::0.750000 0.00000 0.444444 +DEAL:2d-3::0.556351 0.00000 0.277778 +DEAL:2d-3:: +DEAL:2d-3::face_no=0 subface_no=0 face_orientation=1: +DEAL:2d-3::0.0563508 0.00000 0.277778 +DEAL:2d-3::0.250000 0.00000 0.444444 +DEAL:2d-3::0.443649 0.00000 0.277778 +DEAL:2d-3:: +DEAL:2d-3::face_no=0 subface_no=1 face_orientation=0: +DEAL:2d-3::0.443649 0.00000 0.277778 +DEAL:2d-3::0.250000 0.00000 0.444444 +DEAL:2d-3::0.0563508 0.00000 0.277778 +DEAL:2d-3:: +DEAL:2d-3::face_no=0 subface_no=1 face_orientation=1: +DEAL:2d-3::0.556351 0.00000 0.277778 +DEAL:2d-3::0.750000 0.00000 0.444444 +DEAL:2d-3::0.943649 0.00000 0.277778 +DEAL:2d-3:: +DEAL:2d-3::face_no=1 subface_no=0 face_orientation=0: +DEAL:2d-3::0.0563508 0.943649 0.392837 +DEAL:2d-3::0.250000 0.750000 0.628539 +DEAL:2d-3::0.443649 0.556351 0.392837 +DEAL:2d-3:: +DEAL:2d-3::face_no=1 subface_no=0 face_orientation=1: +DEAL:2d-3::0.943649 0.0563508 0.392837 +DEAL:2d-3::0.750000 0.250000 0.628539 +DEAL:2d-3::0.556351 0.443649 0.392837 +DEAL:2d-3:: +DEAL:2d-3::face_no=1 subface_no=1 face_orientation=0: +DEAL:2d-3::0.556351 0.443649 0.392837 +DEAL:2d-3::0.750000 0.250000 0.628539 +DEAL:2d-3::0.943649 0.0563508 0.392837 +DEAL:2d-3:: +DEAL:2d-3::face_no=1 subface_no=1 face_orientation=1: +DEAL:2d-3::0.443649 0.556351 0.392837 +DEAL:2d-3::0.250000 0.750000 0.628539 +DEAL:2d-3::0.0563508 0.943649 0.392837 +DEAL:2d-3:: +DEAL:2d-3::face_no=2 subface_no=0 face_orientation=0: +DEAL:2d-3::0.00000 0.0563508 0.277778 +DEAL:2d-3::0.00000 0.250000 0.444444 +DEAL:2d-3::0.00000 0.443649 0.277778 +DEAL:2d-3:: +DEAL:2d-3::face_no=2 subface_no=0 face_orientation=1: +DEAL:2d-3::0.00000 0.943649 0.277778 +DEAL:2d-3::0.00000 0.750000 0.444444 +DEAL:2d-3::0.00000 0.556351 0.277778 +DEAL:2d-3:: +DEAL:2d-3::face_no=2 subface_no=1 face_orientation=0: +DEAL:2d-3::0.00000 0.556351 0.277778 +DEAL:2d-3::0.00000 0.750000 0.444444 +DEAL:2d-3::0.00000 0.943649 0.277778 +DEAL:2d-3:: +DEAL:2d-3::face_no=2 subface_no=1 face_orientation=1: +DEAL:2d-3::0.00000 0.443649 0.277778 +DEAL:2d-3::0.00000 0.250000 0.444444 +DEAL:2d-3::0.00000 0.0563508 0.277778 +DEAL:2d-3:: diff --git a/tests/simplex/q_projection_subfaces.cc b/tests/simplex/q_projection_subfaces.cc new file mode 100644 index 0000000000..b55672b7a6 --- /dev/null +++ b/tests/simplex/q_projection_subfaces.cc @@ -0,0 +1,143 @@ +// ------------------------------------------------------------------------ +// +// SPDX-License-Identifier: LGPL-2.1-or-later +// Copyright (C) 2020 - 2025 by the deal.II authors +// +// This file is part of the deal.II library. +// +// Part of the source code is dual licensed under Apache-2.0 WITH +// LLVM-exception OR LGPL-2.1-or-later. Detailed license information +// governing the source code and code contributions can be found in +// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II. +// +// ------------------------------------------------------------------------ + + +// Test FESubfaceValues for different subface quadrature rules on triangles. + + +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +#include + +#include + +#include "../tests.h" + +#include "./simplex_grids.h" + +template +void +test() +{} + +template <> +void +test<2>() +{ + const unsigned int dim = 2; + + // test FESubFaceValues for FE_SimplexP + { + deallog.push("FESubFaceValues"); + const hp::QCollection quad_ref(QGaussSimplex(1), + QGaussSimplex(2), + QGaussSimplex(3), + QGaussSimplex(4)); + + MappingFE mapping(FE_SimplexP(1)); + FE_SimplexP fe(3); + + const UpdateFlags flags = + update_values | update_quadrature_points | update_JxW_values; + + Triangulation tria; + GridGenerator::subdivided_hyper_cube_with_simplices(tria, 1); + tria.begin_active()->set_refine_flag( + RefinementCase::isotropic_refinement); + tria.execute_coarsening_and_refinement(); + + DoFHandler dof_handler(tria); + dof_handler.distribute_dofs(fe); + + Vector vector_0(dof_handler.n_dofs()); + Vector vector_1(dof_handler.n_dofs()); + + VectorTools::interpolate(mapping, + dof_handler, + Functions::Monomial( + Tensor<1, dim, double>({1., 0.})), + vector_0); + VectorTools::interpolate(mapping, + dof_handler, + Functions::Monomial( + Tensor<1, dim, double>({0., 1.})), + vector_1); + + std::vector values_0, values_1; + + for (unsigned int current_quad = 0; current_quad < quad_ref.size(); + ++current_quad) + { + FESubfaceValues fe_face_values(mapping, + fe, + quad_ref[current_quad], + flags); + + for (const auto &cell : dof_handler.active_cell_iterators()) + for (const auto face_no : cell->face_indices()) + for (unsigned int subface_no = 0; subface_no < 2; ++subface_no) + { + fe_face_values.reinit(cell, face_no, subface_no); + + values_0.resize(fe_face_values.n_quadrature_points); + values_1.resize(fe_face_values.n_quadrature_points); + + fe_face_values.get_function_values(vector_0, values_0); + fe_face_values.get_function_values(vector_1, values_1); + + for (unsigned int q = 0; q < values_0.size(); ++q) + { + if (std::abs(values_0[q] - + fe_face_values.quadrature_point(q)[0]) < 1e-12) + deallog << "Ok" + << " "; + else + deallog << "False" + << " "; + + if (std::abs(values_1[q] - + fe_face_values.quadrature_point(q)[1]) < 1e-12) + deallog << "Ok" + << " "; + else + deallog << "False" + << " "; + deallog << std::endl; + } + } + } + deallog << std::endl; + } +} + + +int +main() +{ + initlog(); + + deallog.push("dim=2"); + test<2>(); + deallog.pop(); +} diff --git a/tests/simplex/q_projection_subfaces.output b/tests/simplex/q_projection_subfaces.output new file mode 100644 index 0000000000..eda804daf0 --- /dev/null +++ b/tests/simplex/q_projection_subfaces.output @@ -0,0 +1,302 @@ + +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues:: diff --git a/tests/simplex/q_projection_subfaces_2.cc b/tests/simplex/q_projection_subfaces_2.cc new file mode 100644 index 0000000000..27a204813b --- /dev/null +++ b/tests/simplex/q_projection_subfaces_2.cc @@ -0,0 +1,197 @@ +// ------------------------------------------------------------------------ +// +// SPDX-License-Identifier: LGPL-2.1-or-later +// Copyright (C) 2020 - 2025 by the deal.II authors +// +// This file is part of the deal.II library. +// +// Part of the source code is dual licensed under Apache-2.0 WITH +// LLVM-exception OR LGPL-2.1-or-later. Detailed license information +// governing the source code and code contributions can be found in +// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II. +// +// ------------------------------------------------------------------------ + + +// Test FESubfaceValues for different subface quadrature rules on a mixed mesh. + + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include + +#include + +#include "../tests.h" + +#include "./simplex_grids.h" + +template +void +test(const unsigned int n_q) +{} + +template <> +void +test<2>(const unsigned int n_q) +{ + const unsigned int dim = 2; + + // test FESubFaceValues for mixed meshes + { + deallog.push("FESubFaceValues"); + QGaussSimplex quad_simplex(n_q); + QGauss quad_q(n_q); + const hp::QCollection quad_ref(quad_simplex, quad_q); + + hp::MappingCollection mapping(MappingFE(FE_SimplexP(1)), + MappingQ1()); + hp::FECollection fe(FE_SimplexP(3), FE_Q(3)); + + const UpdateFlags flags = + update_values | update_quadrature_points | update_JxW_values; + + Triangulation tria; + { + std::vector> vertices; + std::vector> cells; + // determine cell sizes + const Point dx(0.25, 0.25); + + // create vertices + for (unsigned int j = 0; j <= 4; ++j) + for (unsigned int i = 0; i <= 4; ++i) + vertices.push_back(Point(dx[0] * i, dx[1] * j)); + + // create cells + for (unsigned int j = 0; j < 4; ++j) + for (unsigned int i = 0; i < 4; ++i) + { + // create reference QUAD cell + std::array quad{{ + (j + 0) * (4 + 1) + i + 0, // + (j + 0) * (4 + 1) + i + 1, // + (j + 1) * (4 + 1) + i + 0, // + (j + 1) * (4 + 1) + i + 1 // + }}; // + + if (j < 4 / 2 && i < 4 / 2) + { + CellData quad_; + quad_.vertices = {quad[0], quad[3], quad[1], quad[2]}; + cells.push_back(quad_); + + continue; + } + + // TRI cell 0 + { + CellData tri; + tri.vertices = {quad[0], quad[1], quad[2]}; + cells.push_back(tri); + } + + // TRI cell 1 + { + CellData tri; + tri.vertices = {quad[3], quad[2], quad[1]}; + cells.push_back(tri); + } + } + tria.create_triangulation(vertices, cells, SubCellData()); + } + + DoFHandler dof_handler(tria); + for (const auto &cell : dof_handler.active_cell_iterators()) + { + if (cell->reference_cell() == ReferenceCells::Triangle) + cell->set_active_fe_index(0); + else + cell->set_active_fe_index(1); + } + dof_handler.distribute_dofs(fe); + + + Vector vector_0(dof_handler.n_dofs()); + Vector vector_1(dof_handler.n_dofs()); + + VectorTools::interpolate(mapping, + dof_handler, + Functions::Monomial( + Tensor<1, dim, double>({1., 0.})), + vector_0); + VectorTools::interpolate(mapping, + dof_handler, + Functions::Monomial( + Tensor<1, dim, double>({0., 1.})), + vector_1); + + std::vector values_0, values_1; + hp::FESubfaceValues hp_fe_subface_values(mapping, fe, quad_ref, flags); + + for (const auto &cell : dof_handler.active_cell_iterators()) + for (const auto face_no : cell->face_indices()) + for (unsigned int subface_no = 0; subface_no < 2; ++subface_no) + { + hp_fe_subface_values.reinit(cell, face_no, subface_no); + const FESubfaceValues &fe_face_values = + hp_fe_subface_values.get_present_fe_values(); + + values_0.resize( + hp_fe_subface_values.get_quadrature_collection()[0].size()); + values_1.resize( + hp_fe_subface_values.get_quadrature_collection()[1].size()); + + fe_face_values.get_function_values(vector_0, values_0); + fe_face_values.get_function_values(vector_1, values_1); + + for (unsigned int q = 0; q < values_0.size(); ++q) + { + if (std::abs(values_0[q] - + fe_face_values.quadrature_point(q)[0]) < 1e-12) + deallog << "Ok" + << " "; + else + deallog << "False" + << " "; + + if (std::abs(values_1[q] - + fe_face_values.quadrature_point(q)[1]) < 1e-12) + deallog << "Ok" + << " "; + else + deallog << "False" + << " "; + deallog << std::endl; + } + } + deallog << std::endl; + deallog.pop(); + } +} + + +int +main() +{ + initlog(); + + deallog.push("dim=2"); + for (unsigned int q = 1; q < 5; ++q) + test<2>(q); + deallog.pop(); +} diff --git a/tests/simplex/q_projection_subfaces_2.output b/tests/simplex/q_projection_subfaces_2.output new file mode 100644 index 0000000000..caed8493df --- /dev/null +++ b/tests/simplex/q_projection_subfaces_2.output @@ -0,0 +1,1765 @@ + +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues:: +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues:: +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues:: +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::