From: Dominik Still Date: Tue, 29 Apr 2025 08:24:47 +0000 (+0200) Subject: Add non-standard oriented quadrature on subfaces X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F18398%2Fhead;p=dealii.git Add non-standard oriented quadrature on subfaces --- diff --git a/source/base/qprojector.cc b/source/base/qprojector.cc index 79cea08ca5..fa12b02e6d 100644 --- a/source/base/qprojector.cc +++ b/source/base/qprojector.cc @@ -1021,38 +1021,37 @@ QProjector<2>::project_to_all_subfaces(const ReferenceCell &reference_cell, const unsigned int dim = 2; - const unsigned int n_points = quadrature.size(), - n_faces = GeometryInfo::faces_per_cell, - subfaces_per_face = - GeometryInfo::max_children_per_face; - - // first fix quadrature points std::vector> q_points; - q_points.reserve(n_points * n_faces * subfaces_per_face); - std::vector> help(n_points); + std::vector weights; // project to each face and copy // results - for (unsigned int face = 0; face < n_faces; ++face) - for (unsigned int subface = 0; subface < subfaces_per_face; ++subface) - { - project_to_subface(reference_cell, quadrature, face, subface, help); - std::copy(help.begin(), help.end(), std::back_inserter(q_points)); - } - - // next copy over weights - std::vector weights; - weights.reserve(n_points * n_faces * subfaces_per_face); - for (unsigned int face = 0; face < n_faces; ++face) - for (unsigned int subface = 0; subface < subfaces_per_face; ++subface) - std::copy(quadrature.get_weights().begin(), - quadrature.get_weights().end(), - std::back_inserter(weights)); - - Assert(q_points.size() == n_points * n_faces * subfaces_per_face, - ExcInternalError()); - Assert(weights.size() == n_points * n_faces * subfaces_per_face, - ExcInternalError()); + for (unsigned int face = 0; face < reference_cell.n_faces(); ++face) + for (types::geometric_orientation orientation = 0; + orientation < reference_cell.n_face_orientations(face); + ++orientation) + for (unsigned int subface = 0; + subface < + reference_cell.face_reference_cell(face).n_isotropic_children(); + ++subface) + { + const unsigned int local_subface = + orientation == numbers::reverse_line_orientation ? 1 - subface : + subface; + const auto sub_quadrature = + project_to_subface(reference_cell, + quadrature, + face, + local_subface, + orientation, + RefinementCase::isotropic_refinement); + q_points.insert(q_points.end(), + sub_quadrature.get_points().begin(), + sub_quadrature.get_points().end()); + weights.insert(weights.end(), + sub_quadrature.get_weights().begin(), + sub_quadrature.get_weights().end()); + } return Quadrature(std::move(q_points), std::move(weights)); } @@ -1425,21 +1424,27 @@ QProjector<1>::DataSetDescriptor::subface( template <> QProjector<2>::DataSetDescriptor QProjector<2>::DataSetDescriptor::subface( - const ReferenceCell &reference_cell, - const unsigned int face_no, - const unsigned int subface_no, - const types::geometric_orientation /*combined_orientation*/, - const unsigned int n_quadrature_points, + const ReferenceCell &reference_cell, + const unsigned int face_no, + const unsigned int subface_no, + const types::geometric_orientation combined_orientation, + const unsigned int n_quadrature_points, const internal::SubfaceCase<2>) { Assert(reference_cell == ReferenceCells::Quadrilateral, ExcNotImplemented()); - (void)reference_cell; - Assert(face_no < GeometryInfo<2>::faces_per_cell, ExcInternalError()); - Assert(subface_no < GeometryInfo<2>::max_children_per_face, - ExcInternalError()); + const unsigned int n_faces = reference_cell.n_faces(); + const unsigned int n_subfaces = + reference_cell.face_reference_cell(face_no).n_isotropic_children(); + const unsigned int n_orientations = + reference_cell.n_face_orientations(face_no); + + AssertIndexRange(face_no, n_faces); + AssertIndexRange(subface_no, n_subfaces); + AssertIndexRange(combined_orientation, n_orientations); - return ((face_no * GeometryInfo<2>::max_children_per_face + subface_no) * + return ((face_no * n_orientations * n_subfaces + + combined_orientation * n_subfaces + subface_no) * n_quadrature_points); } diff --git a/source/fe/fe_poly_tensor.cc b/source/fe/fe_poly_tensor.cc index 3efe77137d..c3426e46c7 100644 --- a/source/fe/fe_poly_tensor.cc +++ b/source/fe/fe_poly_tensor.cc @@ -1871,14 +1871,14 @@ FE_PolyTensor::fill_fe_subface_values( // offset determines which data set // to take (all data sets for all // sub-faces are stored contiguously) - const auto offset = - QProjector::DataSetDescriptor::subface(this->reference_cell(), - face_no, - sub_no, - cell->combined_face_orientation( - face_no), - n_q_points, - cell->subface_case(face_no)); + const auto offset = QProjector::DataSetDescriptor::subface( + this->reference_cell(), + face_no, + sub_no, + dim == 2 ? numbers::default_geometric_orientation : + cell->combined_face_orientation(face_no), + n_q_points, + cell->subface_case(face_no)); // TODO: Size assertions diff --git a/tests/base/qprojector_subfaces.cc b/tests/base/qprojector_subfaces.cc new file mode 100644 index 0000000000..f4d5f92113 --- /dev/null +++ b/tests/base/qprojector_subfaces.cc @@ -0,0 +1,191 @@ +// ------------------------------------------------------------------------ +// +// 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. + + +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +#include + +#include + +#include "../tests.h" + +template +void +test() +{} + +template <> +void +test<2>() +{ + const unsigned int dim = 2; + + // test: QProjector::project_to_all_subfaces + { + deallog.push("project_to_all_subfaces"); + const hp::QCollection quad_ref(QGauss(1), + QGauss(2), + QGauss(3), + QGauss(4)); + + for (unsigned int current_quad = 0; current_quad < quad_ref.size(); + ++current_quad) + { + const auto quad = QProjector::project_to_all_subfaces( + ReferenceCells::Quadrilateral, quad_ref[current_quad]); + + 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"); + for (unsigned int nq = 1; nq < 6; ++nq) + for (const unsigned int face_no : + ReferenceCells::get_hypercube().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_hypercube(), + face_no, + subface_no, + o, + nq); + deallog << "Face:" << face_no << " subface:" << subface_no + << " orientation:" << o << " offset:" << offset + << std::endl; + } + deallog.pop(); + } + + + // test FESubFaceValues for FE_Q + { + deallog.push("FESubFaceValues"); + const hp::QCollection quad_ref(QGauss(1), + QGauss(2), + QGauss(3), + QGauss(4)); + + MappingQ mapping(1); + FE_Q fe(3); + + const UpdateFlags flags = + update_values | update_quadrature_points | update_JxW_values; + + Triangulation tria; + GridGenerator::hyper_cube(tria); + 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/base/qprojector_subfaces.output b/tests/base/qprojector_subfaces.output new file mode 100644 index 0000000000..aeaa62d6b6 --- /dev/null +++ b/tests/base/qprojector_subfaces.output @@ -0,0 +1,567 @@ + +DEAL:dim=2:project_to_all_subfaces::0.00000 0.250000 1.00000 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.750000 1.00000 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.750000 1.00000 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.250000 1.00000 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.250000 1.00000 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.750000 1.00000 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.750000 1.00000 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.250000 1.00000 +DEAL:dim=2:project_to_all_subfaces::0.250000 0.00000 1.00000 +DEAL:dim=2:project_to_all_subfaces::0.750000 0.00000 1.00000 +DEAL:dim=2:project_to_all_subfaces::0.750000 0.00000 1.00000 +DEAL:dim=2:project_to_all_subfaces::0.250000 0.00000 1.00000 +DEAL:dim=2:project_to_all_subfaces::0.250000 1.00000 1.00000 +DEAL:dim=2:project_to_all_subfaces::0.750000 1.00000 1.00000 +DEAL:dim=2:project_to_all_subfaces::0.750000 1.00000 1.00000 +DEAL:dim=2:project_to_all_subfaces::0.250000 1.00000 1.00000 +DEAL:dim=2:project_to_all_subfaces:: +DEAL:dim=2:project_to_all_subfaces::0.00000 0.105662 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.394338 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.605662 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.894338 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.894338 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.605662 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.394338 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.105662 0.500000 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.105662 0.500000 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.394338 0.500000 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.605662 0.500000 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.894338 0.500000 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.894338 0.500000 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.605662 0.500000 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.394338 0.500000 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.105662 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.105662 0.00000 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.394338 0.00000 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.605662 0.00000 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.894338 0.00000 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.894338 0.00000 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.605662 0.00000 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.394338 0.00000 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.105662 0.00000 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.105662 1.00000 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.394338 1.00000 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.605662 1.00000 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.894338 1.00000 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.894338 1.00000 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.605662 1.00000 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.394338 1.00000 0.500000 +DEAL:dim=2:project_to_all_subfaces::0.105662 1.00000 0.500000 +DEAL:dim=2:project_to_all_subfaces:: +DEAL:dim=2:project_to_all_subfaces::0.00000 0.0563508 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.250000 0.444444 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.443649 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.556351 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.750000 0.444444 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.943649 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.943649 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.750000 0.444444 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.556351 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.443649 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.250000 0.444444 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.0563508 0.277778 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.0563508 0.277778 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.250000 0.444444 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.443649 0.277778 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.556351 0.277778 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.750000 0.444444 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.943649 0.277778 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.943649 0.277778 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.750000 0.444444 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.556351 0.277778 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.443649 0.277778 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.250000 0.444444 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.0563508 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.0563508 0.00000 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.250000 0.00000 0.444444 +DEAL:dim=2:project_to_all_subfaces::0.443649 0.00000 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.556351 0.00000 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.750000 0.00000 0.444444 +DEAL:dim=2:project_to_all_subfaces::0.943649 0.00000 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.943649 0.00000 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.750000 0.00000 0.444444 +DEAL:dim=2:project_to_all_subfaces::0.556351 0.00000 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.443649 0.00000 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.250000 0.00000 0.444444 +DEAL:dim=2:project_to_all_subfaces::0.0563508 0.00000 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.0563508 1.00000 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.250000 1.00000 0.444444 +DEAL:dim=2:project_to_all_subfaces::0.443649 1.00000 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.556351 1.00000 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.750000 1.00000 0.444444 +DEAL:dim=2:project_to_all_subfaces::0.943649 1.00000 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.943649 1.00000 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.750000 1.00000 0.444444 +DEAL:dim=2:project_to_all_subfaces::0.556351 1.00000 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.443649 1.00000 0.277778 +DEAL:dim=2:project_to_all_subfaces::0.250000 1.00000 0.444444 +DEAL:dim=2:project_to_all_subfaces::0.0563508 1.00000 0.277778 +DEAL:dim=2:project_to_all_subfaces:: +DEAL:dim=2:project_to_all_subfaces::0.00000 0.0347159 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.165005 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.334995 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.465284 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.534716 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.665005 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.834995 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.965284 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.965284 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.834995 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.665005 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.534716 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.465284 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.334995 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.165005 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.00000 0.0347159 0.173927 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.0347159 0.173927 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.165005 0.326073 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.334995 0.326073 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.465284 0.173927 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.534716 0.173927 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.665005 0.326073 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.834995 0.326073 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.965284 0.173927 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.965284 0.173927 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.834995 0.326073 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.665005 0.326073 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.534716 0.173927 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.465284 0.173927 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.334995 0.326073 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.165005 0.326073 +DEAL:dim=2:project_to_all_subfaces::1.00000 0.0347159 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.0347159 0.00000 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.165005 0.00000 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.334995 0.00000 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.465284 0.00000 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.534716 0.00000 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.665005 0.00000 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.834995 0.00000 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.965284 0.00000 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.965284 0.00000 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.834995 0.00000 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.665005 0.00000 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.534716 0.00000 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.465284 0.00000 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.334995 0.00000 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.165005 0.00000 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.0347159 0.00000 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.0347159 1.00000 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.165005 1.00000 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.334995 1.00000 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.465284 1.00000 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.534716 1.00000 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.665005 1.00000 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.834995 1.00000 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.965284 1.00000 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.965284 1.00000 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.834995 1.00000 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.665005 1.00000 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.534716 1.00000 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.465284 1.00000 0.173927 +DEAL:dim=2:project_to_all_subfaces::0.334995 1.00000 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.165005 1.00000 0.326073 +DEAL:dim=2:project_to_all_subfaces::0.0347159 1.00000 0.173927 +DEAL:dim=2:project_to_all_subfaces:: +DEAL:dim=2:project_to_all_subfaces:: +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:0 orientation:0 offset:0 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:1 orientation:0 offset:1 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:0 orientation:1 offset:2 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:1 orientation:1 offset:3 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:0 orientation:0 offset:4 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:1 orientation:0 offset:5 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:0 orientation:1 offset:6 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:1 orientation:1 offset:7 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:0 orientation:0 offset:8 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:1 orientation:0 offset:9 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:0 orientation:1 offset:10 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:1 orientation:1 offset:11 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:0 orientation:0 offset:12 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:1 orientation:0 offset:13 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:0 orientation:1 offset:14 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:1 orientation:1 offset:15 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:0 orientation:0 offset:0 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:1 orientation:0 offset:2 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:0 orientation:1 offset:4 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:1 orientation:1 offset:6 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:0 orientation:0 offset:8 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:1 orientation:0 offset:10 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:0 orientation:1 offset:12 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:1 orientation:1 offset:14 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:0 orientation:0 offset:16 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:1 orientation:0 offset:18 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:0 orientation:1 offset:20 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:1 orientation:1 offset:22 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:0 orientation:0 offset:24 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:1 orientation:0 offset:26 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:0 orientation:1 offset:28 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:1 orientation:1 offset:30 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:0 orientation:0 offset:0 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:1 orientation:0 offset:3 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:0 orientation:1 offset:6 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:1 orientation:1 offset:9 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:0 orientation:0 offset:12 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:1 orientation:0 offset:15 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:0 orientation:1 offset:18 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:1 orientation:1 offset:21 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:0 orientation:0 offset:24 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:1 orientation:0 offset:27 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:0 orientation:1 offset:30 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:1 orientation:1 offset:33 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:0 orientation:0 offset:36 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:1 orientation:0 offset:39 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:0 orientation:1 offset:42 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:1 orientation:1 offset:45 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:0 orientation:0 offset:0 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:1 orientation:0 offset:4 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:0 orientation:1 offset:8 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:1 orientation:1 offset:12 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:0 orientation:0 offset:16 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:1 orientation:0 offset:20 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:0 orientation:1 offset:24 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:1 orientation:1 offset:28 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:0 orientation:0 offset:32 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:1 orientation:0 offset:36 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:0 orientation:1 offset:40 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:1 orientation:1 offset:44 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:0 orientation:0 offset:48 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:1 orientation:0 offset:52 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:0 orientation:1 offset:56 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:1 orientation:1 offset:60 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:0 orientation:0 offset:0 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:1 orientation:0 offset:5 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:0 orientation:1 offset:10 +DEAL:dim=2:DataSetDescriptor::subface::Face:0 subface:1 orientation:1 offset:15 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:0 orientation:0 offset:20 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:1 orientation:0 offset:25 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:0 orientation:1 offset:30 +DEAL:dim=2:DataSetDescriptor::subface::Face:1 subface:1 orientation:1 offset:35 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:0 orientation:0 offset:40 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:1 orientation:0 offset:45 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:0 orientation:1 offset:50 +DEAL:dim=2:DataSetDescriptor::subface::Face:2 subface:1 orientation:1 offset:55 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:0 orientation:0 offset:60 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:1 orientation:0 offset:65 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:0 orientation:1 offset:70 +DEAL:dim=2:DataSetDescriptor::subface::Face:3 subface:1 orientation:1 offset:75 +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::Ok Ok +DEAL:dim=2:FESubFaceValues::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/base/quadrature_sorted_test.cc b/tests/base/quadrature_sorted_test.cc index 3257d14fb2..ff11134d21 100644 --- a/tests/base/quadrature_sorted_test.cc +++ b/tests/base/quadrature_sorted_test.cc @@ -155,11 +155,7 @@ check_faces(const std::vector *> &quadratures, switch (dim) { case 2: - // TODO: once we support multiple orientations per subface in 2d - // we can get rid of the second ternary if here (because we will - // always integrate over all orientations: i.e., both of them in - // 2d). - exact_int = 2 * (sub ? 2 : 1) * (sub ? 1 : 2) / (double)(i + 1); + exact_int = 2 * (sub ? 2 : 1) * 2 / (double)(i + 1); break; case 3: exact_int = diff --git a/tests/base/quadrature_test.cc b/tests/base/quadrature_test.cc index 6009fb82e6..71c228ba2e 100644 --- a/tests/base/quadrature_test.cc +++ b/tests/base/quadrature_test.cc @@ -176,11 +176,7 @@ check_faces(const std::vector *> &quadratures, switch (dim) { case 2: - // TODO: once we support multiple orientations per subface in 2d - // we can get rid of the second ternary if here (because we will - // always integrate over all orientations: i.e., both of them in - // 2d). - exact_int = 2 * (sub ? 2 : 1) * (sub ? 1 : 2) / (double)(i + 1); + exact_int = 2 * (sub ? 2 : 1) * 2 / (double)(i + 1); break; case 3: exact_int =