From b4ded94238041c05d5173aa2aca9ca6e15914d1e Mon Sep 17 00:00:00 2001 From: David Wells Date: Wed, 25 Jun 2025 23:23:34 -0400 Subject: [PATCH] Add MappingP1. --- include/deal.II/fe/mapping_p1.h | 359 +++++ source/fe/CMakeLists.txt | 2 + source/fe/mapping_p1.cc | 894 +++++++++++ source/fe/mapping_p1.inst.in | 21 + tests/simplex/mapping_p1_01.cc | 264 ++++ tests/simplex/mapping_p1_01.output | 961 ++++++++++++ tests/simplex/mapping_p1_02.cc | 259 ++++ tests/simplex/mapping_p1_02.output | 2211 ++++++++++++++++++++++++++++ tests/simplex/mapping_p1_03.cc | 261 ++++ tests/simplex/mapping_p1_03.output | 1038 +++++++++++++ tests/simplex/mapping_p1_04.cc | 168 +++ tests/simplex/mapping_p1_04.output | 369 +++++ tests/simplex/mapping_p1_05.cc | 364 +++++ tests/simplex/mapping_p1_05.output | 376 +++++ 14 files changed, 7547 insertions(+) create mode 100644 include/deal.II/fe/mapping_p1.h create mode 100644 source/fe/mapping_p1.cc create mode 100644 source/fe/mapping_p1.inst.in create mode 100644 tests/simplex/mapping_p1_01.cc create mode 100644 tests/simplex/mapping_p1_01.output create mode 100644 tests/simplex/mapping_p1_02.cc create mode 100644 tests/simplex/mapping_p1_02.output create mode 100644 tests/simplex/mapping_p1_03.cc create mode 100644 tests/simplex/mapping_p1_03.output create mode 100644 tests/simplex/mapping_p1_04.cc create mode 100644 tests/simplex/mapping_p1_04.output create mode 100644 tests/simplex/mapping_p1_05.cc create mode 100644 tests/simplex/mapping_p1_05.output diff --git a/include/deal.II/fe/mapping_p1.h b/include/deal.II/fe/mapping_p1.h new file mode 100644 index 0000000000..a5659090e9 --- /dev/null +++ b/include/deal.II/fe/mapping_p1.h @@ -0,0 +1,359 @@ +// ------------------------------------------------------------------------ +// +// SPDX-License-Identifier: LGPL-2.1-or-later +// Copyright (C) 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. +// +// ------------------------------------------------------------------------ + +#ifndef dealii_mapping_p1_h +#define dealii_mapping_p1_h + + +#include + +#include + +#include + +#include + + +DEAL_II_NAMESPACE_OPEN + +/** + * @addtogroup mapping + * @{ + */ + +/** + * @brief Implementation of the classic affine transformation mapping used for + * simplices. + * + * For simplex cells, the transformation mapping the unit to real cell may be + * written as an affine transformation: that is + * + * @f[ + * \begin{pmatrix} + * x \\ + * y + * \end{pmatrix} + * = + * \begin{pmatrix} + * x_1 - x_0 & x_2 - x_0 \\ + * y_1 - y_0 & y_2 - y_0 + * \end{pmatrix} + * \begin{pmatrix} + * \hat{x} \\ + * \hat{y} + * \end{pmatrix} + * + + * \begin{pmatrix} + * x_0 \\ + * y_0 + * \end{pmatrix} + * @f] + * + * in which $(x_0, y_0)$, $(x_1, y_1)$ and $(x_2, y_2)$ are the vertices of a + * triangle (in a codimension zero space). Unlike MappingQ1, this mapping is + * affine, not bilinear or trilinear. Hence, this mapping's transformation + * matrices (i.e., the covariant and contravariant transformations) and shift + * vector are constant on each cell. This property makes this mapping + * significantly more efficient than the equivalent MappingFE set up with a + * linear FE_SimplexP. + */ +template +class MappingP1 : public Mapping +{ +public: + virtual std::unique_ptr> + clone() const override; + + /** + * Return @p true because MappingP1 preserves vertex locations. + */ + virtual bool + preserves_vertex_locations() const override; + + /** + * This mapping is compatible with simplex reference cells. + */ + virtual bool + is_compatible_with(const ReferenceCell &reference_cell) const override; + + /** + * @name Mapping points between reference and real cells + * @{ + */ + + virtual Point + transform_unit_to_real_cell( + const typename Triangulation::cell_iterator &cell, + const Point &p) const override; + + virtual Point + transform_real_to_unit_cell( + const typename Triangulation::cell_iterator &cell, + const Point &p) const override; + + virtual void + transform_points_real_to_unit_cell( + const typename Triangulation::cell_iterator &cell, + const ArrayView> &real_points, + const ArrayView> &unit_points) const override; + + /** + * @} + */ + + /** + * @name Functions to transform tensors from reference to real coordinates + * @{ + */ + + virtual void + transform(const ArrayView> &input, + const MappingKind kind, + const typename Mapping::InternalDataBase &internal, + const ArrayView> &output) const override; + + virtual void + transform(const ArrayView> &input, + const MappingKind kind, + const typename Mapping::InternalDataBase &internal, + const ArrayView> &output) const override; + + virtual void + transform(const ArrayView> &input, + const MappingKind kind, + const typename Mapping::InternalDataBase &internal, + const ArrayView> &output) const override; + + virtual void + transform(const ArrayView> &input, + const MappingKind kind, + const typename Mapping::InternalDataBase &internal, + const ArrayView> &output) const override; + + virtual void + transform(const ArrayView> &input, + const MappingKind kind, + const typename Mapping::InternalDataBase &internal, + const ArrayView> &output) const override; + + /** + * @} + */ + + /** + * As opposed to the other fill_fe_values() and fill_fe_face_values() + * functions that rely on pre-computed information of InternalDataBase, this + * function chooses the flexible evaluation path on the cell and points + * passed in to the current function. + * + * @param[in] cell The cell where to evaluate the mapping + * + * @param[in] unit_points The points in reference coordinates where the + * transformation (Jacobians, positions) should be computed. + * + * @param[in] update_flags The kind of information that should be computed. + * + * @param[out] output_data A struct containing the evaluated quantities such + * as the Jacobian resulting from application of the mapping on the given + * cell with its underlying manifolds. + */ + void + fill_mapping_data_for_generic_points( + const typename Triangulation::cell_iterator &cell, + const ArrayView> &unit_points, + const UpdateFlags update_flags, + internal::FEValuesImplementation::MappingRelatedData + &output_data) const; + + /** + * @name Interface with FEValues + * @{ + */ + + /** + * Storage for internal data of the mapping. See Mapping::InternalDataBase + * for an extensive description. + * + * This includes data that is computed once when the object is created (in + * get_data()) as well as data the class wants to store from between the + * call to fill_fe_values(), fill_fe_face_values(), or + * fill_fe_subface_values() until possible later calls from the finite + * element to functions such as transform(). The latter class of member + * variables are marked as 'mutable'. + */ + class InternalData : public Mapping::InternalDataBase + { + public: + /** + * Constructor for use with arbitrary points. + */ + InternalData(const ArrayView> &quadrature_points); + + /** + * Constructor. + */ + InternalData(const Quadrature &quadrature); + + virtual void + reinit(const UpdateFlags update_flags, + const Quadrature &quadrature) override; + + /** + * Return an estimate (in bytes) for the memory consumption of this object. + */ + virtual std::size_t + memory_consumption() const override; + + /** + * Affine component of the transformation. + */ + mutable Tensor<1, spacedim> affine_component; + + /** + * Linear component of the transformation. + */ + mutable DerivativeForm<1, dim, spacedim> linear_component; + + /** + * Determinant of linear_component. + */ + mutable double determinant; + + /** + * Quadrature. May be an amalgamation of rules created by, e.g., + * QProjector::project_to_all_faces(). + */ + Quadrature quadrature; + }; + +private: + virtual UpdateFlags + requires_update_flags(const UpdateFlags update_flags) const override; + + virtual std::unique_ptr::InternalDataBase> + get_data(const UpdateFlags, const Quadrature &quadrature) const override; + + using Mapping::get_face_data; + + virtual std::unique_ptr::InternalDataBase> + get_face_data(const UpdateFlags flags, + const hp::QCollection &quadrature) const override; + + virtual std::unique_ptr::InternalDataBase> + get_subface_data(const UpdateFlags flags, + const Quadrature &quadrature) const override; + + virtual CellSimilarity::Similarity + fill_fe_values( + const typename Triangulation::cell_iterator &cell, + const CellSimilarity::Similarity cell_similarity, + const Quadrature &quadrature, + const typename Mapping::InternalDataBase &internal_data, + internal::FEValuesImplementation::MappingRelatedData + &output_data) const override; + + using Mapping::fill_fe_face_values; + + virtual void + fill_fe_face_values( + const typename Triangulation::cell_iterator &cell, + const unsigned int face_no, + const hp::QCollection &quadrature, + const typename Mapping::InternalDataBase &internal_data, + internal::FEValuesImplementation::MappingRelatedData + &output_data) const override; + + virtual void + fill_fe_subface_values( + const typename Triangulation::cell_iterator &cell, + const unsigned int face_no, + const unsigned int subface_no, + const Quadrature &quadrature, + const typename Mapping::InternalDataBase &internal_data, + internal::FEValuesImplementation::MappingRelatedData + &output_data) const override; + + /** + * @} + */ + + /** + * Update the affine and linear components fields of the incoming InternalData + * object. + */ + void + update_transformation( + const typename Triangulation::cell_iterator &cell, + const InternalData &data) const; + + /** + * Transform quadrature points from the unit cell to the real cell. + */ + void + transform_quadrature_points( + const typename Triangulation::cell_iterator &cell, + const InternalData &data, + const typename QProjector::DataSetDescriptor &offset, + std::vector> &quadrature_points) const; + + /** + * Compute the normal vectors if the UpdateFlags of the incoming InternalData + * object say that they should be updated. + */ + void + maybe_update_normal_vectors( + const unsigned int face_no, + const InternalData &data, + std::vector> &normal_vectors) const; + + /** + * Since the Jacobian is constant for this mapping all derivatives of the + * Jacobian are identically zero. Fill these quantities with zeros if the + * corresponding update flags say that they should be updated. + */ + void + maybe_update_jacobian_derivatives( + const InternalData &data, + const CellSimilarity::Similarity cell_similarity, + internal::FEValuesImplementation::MappingRelatedData + &output_data) const; + + /** + * Compute the Jacobians if the UpdateFlags of the incoming + * InternalData object say that they should be updated. + */ + void + maybe_update_jacobians( + const InternalData &data, + const CellSimilarity::Similarity cell_similarity, + internal::FEValuesImplementation::MappingRelatedData + &output_data) const; + + /** + * Compute the inverse Jacobians if the UpdateFlags of the incoming + * InternalData object say that they should be updated. + */ + void + maybe_update_inverse_jacobians( + const InternalData &data, + const CellSimilarity::Similarity cell_similarity, + internal::FEValuesImplementation::MappingRelatedData + &output_data) const; +}; + +/** @} */ + +DEAL_II_NAMESPACE_CLOSE + +#endif diff --git a/source/fe/CMakeLists.txt b/source/fe/CMakeLists.txt index 4d68b04c26..06cecd31d9 100644 --- a/source/fe/CMakeLists.txt +++ b/source/fe/CMakeLists.txt @@ -59,6 +59,7 @@ set(_unity_include_src mapping_cartesian.cc mapping.cc mapping_fe.cc + mapping_p1.cc mapping_q1.cc mapping_q.cc mapping_q_cache.cc @@ -137,6 +138,7 @@ set(_inst mapping.inst.in mapping_fe.inst.in mapping_fe_field.inst.in + mapping_p1.inst.in mapping_q1_eulerian.inst.in mapping_q1.inst.in mapping_q_cache.inst.in diff --git a/source/fe/mapping_p1.cc b/source/fe/mapping_p1.cc new file mode 100644 index 0000000000..ab97307454 --- /dev/null +++ b/source/fe/mapping_p1.cc @@ -0,0 +1,894 @@ +// ------------------------------------------------------------------------ +// +// SPDX-License-Identifier: LGPL-2.1-or-later +// Copyright (C) 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. +// +// ------------------------------------------------------------------------ + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include +#include +#include + + +DEAL_II_NAMESPACE_OPEN + +namespace +{ + template + DerivativeForm<1, dim, spacedim> + compute_linear_transformation( + const typename Triangulation::cell_iterator &cell) + { + DerivativeForm<1, dim, spacedim> result; + for (unsigned int j = 0; j < spacedim; ++j) + for (unsigned int i = 1; i < dim + 1; ++i) + result[j][i - 1] = cell->vertex(i)[j] - cell->vertex(0)[j]; + return result; + } +} // namespace + + + +template +MappingP1::InternalData::InternalData( + const ArrayView> &quadrature_points) +{ + quadrature.initialize(quadrature_points); +} + + + +template +MappingP1::InternalData::InternalData( + const Quadrature &quadrature) + : quadrature(quadrature) +{} + + + +template +void +MappingP1::InternalData::reinit( + const UpdateFlags update_flags, + const Quadrature &quadrature) +{ + this->quadrature = quadrature; + this->update_each = update_flags; +} + + + +template +std::size_t +MappingP1::InternalData::memory_consumption() const +{ + return (Mapping::InternalDataBase::memory_consumption() + + MemoryConsumption::memory_consumption(affine_component) + + MemoryConsumption::memory_consumption(linear_component) + + MemoryConsumption::memory_consumption(determinant) + + MemoryConsumption::memory_consumption(quadrature)); +} + + + +template +bool +MappingP1::preserves_vertex_locations() const +{ + return true; +} + + + +template +bool +MappingP1::is_compatible_with( + const ReferenceCell &reference_cell) const +{ + return reference_cell.is_simplex(); +} + + + +template +UpdateFlags +MappingP1::requires_update_flags(const UpdateFlags in) const +{ + // Like MappingCartesian, this mapping is simple and has minimal update + // interdependencies + UpdateFlags out = in; + if (out & update_boundary_forms) + out |= update_normal_vectors; + + return out; +} + + + +template +std::unique_ptr::InternalDataBase> +MappingP1::get_data(const UpdateFlags update_flags, + const Quadrature &quadrature) const +{ + auto data_ptr = std::make_unique(quadrature); + + // verify that we have computed the transitive hull of the required + // flags and that FEValues has faithfully passed them on to us + Assert(update_flags == requires_update_flags(update_flags), + ExcInternalError()); + + // store the flags in the internal data object so we can access them + // in fill_fe_*_values(). use the transitive hull of the required + // flags + data_ptr->update_each = requires_update_flags(update_flags); + + return data_ptr; +} + + + +template +std::unique_ptr::InternalDataBase> +MappingP1::get_face_data( + const UpdateFlags update_flags, + const hp::QCollection &quadrature) const +{ + auto data_ptr = std::make_unique( + QProjector::project_to_all_faces(ReferenceCells::get_simplex(), + quadrature)); + + // verify that we have computed the transitive hull of the required + // flags and that FEValues has faithfully passed them on to us + Assert(update_flags == requires_update_flags(update_flags), + ExcInternalError()); + + // store the flags in the internal data object so we can access them + // in fill_fe_*_values() + data_ptr->update_each = update_flags; + + return data_ptr; +} + + + +template +std::unique_ptr::InternalDataBase> +MappingP1::get_subface_data( + const UpdateFlags update_flags, + const Quadrature &quadrature) const +{ + auto data_ptr = std::make_unique( + QProjector::project_to_all_subfaces(ReferenceCells::get_simplex(), + quadrature)); + + // verify that we have computed the transitive hull of the required + // flags and that FEValues has faithfully passed them on to us + Assert(update_flags == requires_update_flags(update_flags), + ExcInternalError()); + + // store the flags in the internal data object so we can access them + // in fill_fe_*_values() + data_ptr->update_each = update_flags; + + return data_ptr; +} + + + +template +void +MappingP1::update_transformation( + const typename Triangulation::cell_iterator &cell, + const InternalData &data) const +{ + data.affine_component = cell->vertex(0); + data.linear_component = compute_linear_transformation(cell); + data.determinant = data.linear_component.determinant(); +} + + + +template +void +MappingP1::transform_quadrature_points( + const typename Triangulation::cell_iterator &cell, + const InternalData &data, + const typename QProjector::DataSetDescriptor &offset, + std::vector> &quadrature_points) const +{ + Assert(cell->vertex(0) == data.affine_component, ExcInternalError()); + for (unsigned int i = 0; i < quadrature_points.size(); ++i) + quadrature_points[i] = + data.affine_component + + apply_transformation(data.linear_component, + data.quadrature.point(offset + i)); +} + + + +template +void +MappingP1::maybe_update_normal_vectors( + const unsigned int face_no, + const InternalData &data, + std::vector> &normal_vectors) const +{ + const Tensor<1, dim> ref_normal_vector = + ReferenceCells::get_simplex().template unit_normal_vectors( + face_no); + Tensor<1, spacedim> normal_vector = + apply_transformation(data.linear_component.covariant_form(), + ref_normal_vector); + normal_vector /= normal_vector.norm(); + + std::fill(normal_vectors.begin(), normal_vectors.end(), normal_vector); +} + + + +template +void +MappingP1::maybe_update_jacobian_derivatives( + const InternalData &data, + const CellSimilarity::Similarity cell_similarity, + internal::FEValuesImplementation::MappingRelatedData + &output_data) const +{ + // The Jacobian is constant so its derivatives are zero + if (cell_similarity != CellSimilarity::translation) + { + if (data.update_each & update_jacobian_grads) + std::fill(output_data.jacobian_grads.begin(), + output_data.jacobian_grads.end(), + DerivativeForm<2, dim, spacedim>()); + + if (data.update_each & update_jacobian_pushed_forward_grads) + std::fill(output_data.jacobian_pushed_forward_grads.begin(), + output_data.jacobian_pushed_forward_grads.end(), + Tensor<3, spacedim>()); + + if (data.update_each & update_jacobian_2nd_derivatives) + std::fill(output_data.jacobian_2nd_derivatives.begin(), + output_data.jacobian_2nd_derivatives.end(), + DerivativeForm<3, dim, spacedim>()); + + if (data.update_each & update_jacobian_pushed_forward_2nd_derivatives) + std::fill(output_data.jacobian_pushed_forward_2nd_derivatives.begin(), + output_data.jacobian_pushed_forward_2nd_derivatives.end(), + Tensor<4, spacedim>()); + + if (data.update_each & update_jacobian_3rd_derivatives) + std::fill(output_data.jacobian_3rd_derivatives.begin(), + output_data.jacobian_3rd_derivatives.end(), + DerivativeForm<4, dim, spacedim>()); + + if (data.update_each & update_jacobian_pushed_forward_3rd_derivatives) + std::fill(output_data.jacobian_pushed_forward_3rd_derivatives.begin(), + output_data.jacobian_pushed_forward_3rd_derivatives.end(), + Tensor<5, spacedim>()); + } +} + + + +template +void +MappingP1::maybe_update_jacobians( + const InternalData &data, + const CellSimilarity::Similarity cell_similarity, + internal::FEValuesImplementation::MappingRelatedData + &output_data) const +{ + // "compute" Jacobian at the quadrature points, which are all the + // same + if (data.update_each & update_jacobians) + if (cell_similarity != CellSimilarity::translation) + std::fill(output_data.jacobians.begin(), + output_data.jacobians.end(), + data.linear_component); +} + + + +template +void +MappingP1::maybe_update_inverse_jacobians( + const InternalData &data, + const CellSimilarity::Similarity cell_similarity, + internal::FEValuesImplementation::MappingRelatedData + &output_data) const +{ + if (data.update_each & update_inverse_jacobians) + if (cell_similarity != CellSimilarity::translation) + { + const auto inverse = data.linear_component.covariant_form().transpose(); + std::fill(output_data.inverse_jacobians.begin(), + output_data.inverse_jacobians.end(), + inverse); + } +} + + + +template +CellSimilarity::Similarity +MappingP1::fill_fe_values( + const typename Triangulation::cell_iterator &cell, + const CellSimilarity::Similarity cell_similarity, + const Quadrature &quadrature, + const typename Mapping::InternalDataBase &internal_data, + internal::FEValuesImplementation::MappingRelatedData + &output_data) const +{ + Assert(dynamic_cast(&internal_data) != nullptr, + ExcInternalError()); + const InternalData &data = static_cast(internal_data); + + update_transformation(cell, data); + if (data.update_each & update_quadrature_points) + transform_quadrature_points(cell, + data, + QProjector::DataSetDescriptor::cell(), + output_data.quadrature_points); + + // A special property of this mapping is that the Jacobian is constant over + // the cell + if (data.update_each & update_JxW_values) + if (cell_similarity != CellSimilarity::translation) + { + for (unsigned int i = 0; i < output_data.JxW_values.size(); ++i) + output_data.JxW_values[i] = data.determinant * quadrature.weight(i); + } + + maybe_update_jacobians(data, cell_similarity, output_data); + maybe_update_jacobian_derivatives(data, cell_similarity, output_data); + maybe_update_inverse_jacobians(data, cell_similarity, output_data); + + if (data.update_each & update_normal_vectors) + { + Assert(spacedim == dim + 1, + ExcMessage("There is no (unique) cell normal for " + + Utilities::int_to_string(dim) + + "-dimensional cells in " + + Utilities::int_to_string(spacedim) + + "-dimensional space. This only works if the " + "space dimension is one greater than the " + "dimensionality of the mesh cells.")); + + Tensor<1, spacedim> normal; + // avoid warnings by only computing cross products in supported dimensions + if constexpr (dim == 1 && spacedim == 2) + normal = cross_product_2d(-data.linear_component.transpose()[0]); + else if constexpr (dim == 2 && spacedim == 3) + { + const auto transpose = data.linear_component.transpose(); + normal = cross_product_3d(transpose[0], transpose[1]); + } + else + DEAL_II_ASSERT_UNREACHABLE(); + normal /= normal.norm(); + + if (cell->direction_flag() == false) + normal *= -1.0; + + std::fill(output_data.normal_vectors.begin(), + output_data.normal_vectors.end(), + normal); + } + + return cell_similarity; +} + + + +template +void +MappingP1::fill_mapping_data_for_generic_points( + const typename Triangulation::cell_iterator &cell, + const ArrayView> &unit_points, + const UpdateFlags update_flags, + internal::FEValuesImplementation::MappingRelatedData + &output_data) const +{ + if (update_flags == update_default) + return; + + Assert(update_flags & update_inverse_jacobians || + update_flags & update_jacobians || + update_flags & update_quadrature_points, + ExcNotImplemented()); + + output_data.initialize(unit_points.size(), update_flags); + + InternalData data(unit_points); + data.update_each = update_flags; + update_transformation(cell, data); + + if (data.update_each & update_quadrature_points) + transform_quadrature_points(cell, + data, + QProjector::DataSetDescriptor::cell(), + output_data.quadrature_points); + + maybe_update_jacobians(data, CellSimilarity::none, output_data); + maybe_update_inverse_jacobians(data, CellSimilarity::none, output_data); +} + + + +template +void +MappingP1::fill_fe_face_values( + const typename Triangulation::cell_iterator &cell, + const unsigned int face_no, + const hp::QCollection &quadrature_collection, + const typename Mapping::InternalDataBase &internal_data, + internal::FEValuesImplementation::MappingRelatedData + &output_data) const +{ + Assert(dynamic_cast(&internal_data) != nullptr, + ExcInternalError()); + const InternalData &data = static_cast(internal_data); + + update_transformation(cell, data); + const auto offset = + QProjector::DataSetDescriptor::face(cell->reference_cell(), + face_no, + cell->combined_face_orientation( + face_no), + quadrature_collection); + if (data.update_each & update_quadrature_points) + transform_quadrature_points(cell, + data, + offset, + output_data.quadrature_points); + + maybe_update_normal_vectors(face_no, data, output_data.normal_vectors); + + if (data.update_each & (update_JxW_values | update_boundary_forms)) + { + // Since the quadrature weights presently sum to + // cell->reference_cell().face_measure(face_no), we have to rescale so + // they sum to the area of the face + const double J = cell->face(face_no)->measure() / + cell->reference_cell().face_measure(face_no); + if (data.update_each & update_JxW_values) + for (unsigned int i = 0; i < output_data.JxW_values.size(); ++i) + output_data.JxW_values[i] = J * data.quadrature.weight(i + offset); + + if (data.update_each & update_boundary_forms) + for (unsigned int i = 0; i < output_data.boundary_forms.size(); ++i) + output_data.boundary_forms[i] = J * output_data.normal_vectors[i]; + } + + maybe_update_jacobians(data, CellSimilarity::none, output_data); + maybe_update_jacobian_derivatives(data, CellSimilarity::none, output_data); + maybe_update_inverse_jacobians(data, CellSimilarity::none, output_data); +} + + + +template +void +MappingP1::fill_fe_subface_values( + const typename Triangulation::cell_iterator &cell, + const unsigned int face_no, + const unsigned int subface_no, + const Quadrature &quadrature, + const typename Mapping::InternalDataBase &internal_data, + internal::FEValuesImplementation::MappingRelatedData + &output_data) const +{ + Assert(dynamic_cast(&internal_data) != nullptr, + ExcInternalError()); + const InternalData &data = static_cast(internal_data); + + update_transformation(cell, data); + const auto offset = + QProjector::DataSetDescriptor::subface(cell->reference_cell(), + face_no, + subface_no, + cell->combined_face_orientation( + face_no), + quadrature.size(), + cell->subface_case(face_no)); + if (data.update_each & update_quadrature_points) + transform_quadrature_points(cell, + data, + offset, + output_data.quadrature_points); + + maybe_update_normal_vectors(face_no, data, output_data.normal_vectors); + + if (data.update_each & (update_JxW_values | update_boundary_forms)) + { + // Same as fill_fe_face_values() + const double J = + cell->face(face_no)->measure() / + cell->face(face_no)->reference_cell().volume() / + // TODO: once we support 3d refinement this should be updated to the + // simplex version of GeometryInfo::subface_ratio() + (dim == 2 ? 2 : 4); + if (data.update_each & update_JxW_values) + for (unsigned int i = 0; i < output_data.JxW_values.size(); ++i) + output_data.JxW_values[i] = J * quadrature.weight(i); + + if (data.update_each & update_boundary_forms) + for (unsigned int i = 0; i < output_data.boundary_forms.size(); ++i) + output_data.boundary_forms[i] = J * output_data.normal_vectors[i]; + } + + maybe_update_jacobians(data, CellSimilarity::none, output_data); + maybe_update_jacobian_derivatives(data, CellSimilarity::none, output_data); + maybe_update_inverse_jacobians(data, CellSimilarity::none, output_data); +} + + + +template +void +MappingP1::transform( + const ArrayView> &input, + const MappingKind mapping_kind, + const typename Mapping::InternalDataBase &mapping_data, + const ArrayView> &output) const +{ + AssertDimension(input.size(), output.size()); + Assert(dynamic_cast(&mapping_data) != nullptr, + ExcInternalError()); + const InternalData &data = static_cast(mapping_data); + + switch (mapping_kind) + { + case mapping_covariant: + { + const auto covariant = data.linear_component.covariant_form(); + for (unsigned int i = 0; i < output.size(); ++i) + output[i] = apply_transformation(covariant, input[i]); + return; + } + + case mapping_contravariant: + { + for (unsigned int i = 0; i < output.size(); ++i) + output[i] = apply_transformation(data.linear_component, input[i]); + return; + } + case mapping_piola: + { + auto transformation = data.linear_component; + Assert(data.determinant > 0.0, ExcDivideByZero()); + for (unsigned int d = 0; d < spacedim; ++d) + transformation[d] /= data.determinant; + for (unsigned int i = 0; i < output.size(); ++i) + output[i] = apply_transformation(transformation, input[i]); + return; + } + default: + DEAL_II_NOT_IMPLEMENTED(); + } +} + + + +template +void +MappingP1::transform( + const ArrayView> &input, + const MappingKind mapping_kind, + const typename Mapping::InternalDataBase &mapping_data, + const ArrayView> &output) const +{ + AssertDimension(input.size(), output.size()); + Assert(dynamic_cast(&mapping_data) != nullptr, + ExcInternalError()); + const InternalData &data = static_cast(mapping_data); + + switch (mapping_kind) + { + case mapping_covariant: + { + const auto covariant = data.linear_component.covariant_form(); + for (unsigned int i = 0; i < output.size(); ++i) + output[i] = apply_transformation(covariant, input[i]); + + return; + } + default: + DEAL_II_NOT_IMPLEMENTED(); + } +} + + + +template +void +MappingP1::transform( + const ArrayView> &input, + const MappingKind mapping_kind, + const typename Mapping::InternalDataBase &mapping_data, + const ArrayView> &output) const +{ + AssertDimension(input.size(), output.size()); + Assert(dynamic_cast(&mapping_data) != nullptr, + ExcInternalError()); + const InternalData &data = static_cast(mapping_data); + + switch (mapping_kind) + { + case mapping_covariant: + { + Assert(data.update_each & update_covariant_transformation, + typename FEValuesBase::ExcAccessToUninitializedField( + "update_covariant_transformation")); + + const auto covariant = data.linear_component.covariant_form(); + for (unsigned int i = 0; i < output.size(); ++i) + output[i] = apply_transformation(covariant, input[i]); + return; + } + + case mapping_contravariant: + { + Assert(data.update_each & update_contravariant_transformation, + typename FEValuesBase::ExcAccessToUninitializedField( + "update_contravariant_transformation")); + + for (unsigned int i = 0; i < output.size(); ++i) + output[i] = apply_transformation(data.linear_component, input[i]); + return; + } + + case mapping_covariant_gradient: + { + Assert(data.update_each & update_covariant_transformation, + typename FEValuesBase::ExcAccessToUninitializedField( + "update_covariant_transformation")); + + const auto covariant = data.linear_component.covariant_form(); + for (unsigned int i = 0; i < output.size(); ++i) + { + const DerivativeForm<1, spacedim, dim> A = + apply_transformation(covariant, transpose(input[i])); + output[i] = apply_transformation(covariant, A.transpose()); + } + return; + } + + case mapping_contravariant_gradient: + { + Assert(data.update_each & update_covariant_transformation, + typename FEValuesBase::ExcAccessToUninitializedField( + "update_covariant_transformation")); + + const auto covariant = data.linear_component.covariant_form(); + for (unsigned int i = 0; i < output.size(); ++i) + { + const DerivativeForm<1, spacedim, dim> A = + apply_transformation(data.linear_component, + transpose(input[i])); + output[i] = apply_transformation(covariant, A.transpose()); + } + + return; + } + + case mapping_piola_gradient: + { + Assert(data.update_each & update_contravariant_transformation, + typename FEValuesBase::ExcAccessToUninitializedField( + "update_contravariant_transformation")); + + const auto covariant = data.linear_component.covariant_form(); + auto scaled_contravariant = data.linear_component; + for (unsigned int d = 0; d < spacedim; ++d) + scaled_contravariant[d] /= data.determinant; + for (unsigned int i = 0; i < output.size(); ++i) + { + const DerivativeForm<1, spacedim, dim> A = + apply_transformation(covariant, input[i]); + const Tensor<2, spacedim> T = + apply_transformation(scaled_contravariant, A.transpose()); + + output[i] = transpose(T); + } + + return; + } + + default: + Assert(false, ExcNotImplemented()); + } +} + + + +template +void +MappingP1::transform( + const ArrayView> &input, + const MappingKind mapping_kind, + const typename Mapping::InternalDataBase &mapping_data, + const ArrayView> &output) const +{ + AssertDimension(input.size(), output.size()); + Assert(dynamic_cast(&mapping_data) != nullptr, + ExcInternalError()); + const InternalData &data = static_cast(mapping_data); + + switch (mapping_kind) + { + case mapping_covariant_gradient: + { + Assert(data.update_each & update_covariant_transformation, + typename FEValuesBase::ExcAccessToUninitializedField( + "update_covariant_transformation")); + + const auto covariant = data.linear_component.covariant_form(); + for (unsigned int i = 0; i < output.size(); ++i) + output[i] = internal::apply_covariant_gradient(covariant, input[i]); + + return; + } + default: + DEAL_II_NOT_IMPLEMENTED(); + } +} + + + +template +void +MappingP1::transform( + const ArrayView> &input, + const MappingKind mapping_kind, + const typename Mapping::InternalDataBase &mapping_data, + const ArrayView> &output) const +{ + AssertDimension(input.size(), output.size()); + Assert(dynamic_cast(&mapping_data) != nullptr, + ExcInternalError()); + const InternalData &data = static_cast(mapping_data); + + switch (mapping_kind) + { + case mapping_contravariant_hessian: + { + Assert(data.update_each & update_covariant_transformation, + typename FEValuesBase::ExcAccessToUninitializedField( + "update_covariant_transformation")); + Assert(data.update_each & update_contravariant_transformation, + typename FEValuesBase::ExcAccessToUninitializedField( + "update_contravariant_transformation")); + + const auto covariant = data.linear_component.covariant_form(); + for (unsigned int i = 0; i < output.size(); ++i) + output[i] = + internal::apply_contravariant_hessian(covariant, + data.linear_component, + input[i]); + + return; + } + + case mapping_covariant_hessian: + { + Assert(data.update_each & update_covariant_transformation, + typename FEValuesBase::ExcAccessToUninitializedField( + "update_covariant_transformation")); + + const auto covariant = data.linear_component.covariant_form(); + for (unsigned int i = 0; i < output.size(); ++i) + output[i] = internal::apply_covariant_hessian(covariant, input[i]); + + return; + } + + case mapping_piola_hessian: + { + Assert(data.update_each & update_covariant_transformation, + typename FEValuesBase::ExcAccessToUninitializedField( + "update_covariant_transformation")); + Assert(data.update_each & update_contravariant_transformation, + typename FEValuesBase::ExcAccessToUninitializedField( + "update_contravariant_transformation")); + + const auto covariant = data.linear_component.covariant_form(); + for (unsigned int i = 0; i < output.size(); ++i) + output[i] = internal::apply_piola_hessian(covariant, + data.linear_component, + data.determinant, + input[i]); + + return; + } + + default: + DEAL_II_NOT_IMPLEMENTED(); + } +} + + + +template +Point +MappingP1::transform_unit_to_real_cell( + const typename Triangulation::cell_iterator &cell, + const Point &p) const +{ + const DerivativeForm<1, dim, spacedim> linear_component = + compute_linear_transformation(cell); + const Tensor<1, spacedim> sheared = apply_transformation(linear_component, p); + return cell->vertex(0) + sheared; +} + + + +template +Point +MappingP1::transform_real_to_unit_cell( + const typename Triangulation::cell_iterator &cell, + const Point &p) const +{ + const DerivativeForm<1, spacedim, dim> linear_component = + compute_linear_transformation(cell) + .covariant_form() + .transpose(); + const Tensor<1, spacedim> offset = cell->vertex(0); + return Point(apply_transformation(linear_component, p - offset)); +} + + + +template +void +MappingP1::transform_points_real_to_unit_cell( + const typename Triangulation::cell_iterator &cell, + const ArrayView> &real_points, + const ArrayView> &unit_points) const +{ + const DerivativeForm<1, spacedim, dim> linear_component = + compute_linear_transformation(cell) + .covariant_form() + .transpose(); + const Tensor<1, spacedim> offset = cell->vertex(0); + for (unsigned int i = 0; i < real_points.size(); ++i) + unit_points[i] = Point( + apply_transformation(linear_component, real_points[i] - offset)); +} + + + +template +std::unique_ptr> +MappingP1::clone() const +{ + return std::make_unique>(*this); +} + + +//--------------------------------------------------------------------------- +// explicit instantiations +#include "fe/mapping_p1.inst" + + +DEAL_II_NAMESPACE_CLOSE diff --git a/source/fe/mapping_p1.inst.in b/source/fe/mapping_p1.inst.in new file mode 100644 index 0000000000..7c104e77db --- /dev/null +++ b/source/fe/mapping_p1.inst.in @@ -0,0 +1,21 @@ +// ------------------------------------------------------------------------ +// +// SPDX-License-Identifier: LGPL-2.1-or-later +// Copyright (C) 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. +// +// ------------------------------------------------------------------------ + + +for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS) + { +#if deal_II_dimension <= deal_II_space_dimension + template class MappingP1; +#endif + } diff --git a/tests/simplex/mapping_p1_01.cc b/tests/simplex/mapping_p1_01.cc new file mode 100644 index 0000000000..21342a0c9f --- /dev/null +++ b/tests/simplex/mapping_p1_01.cc @@ -0,0 +1,264 @@ +// ------------------------------------------------------------------------ +// +// SPDX-License-Identifier: LGPL-2.1-or-later +// Copyright (C) 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. +// +// ------------------------------------------------------------------------ + +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "../tests.h" + + +// Test MappingP1's cell values for mapping quantities by comparing with +// MappingFE. + +using namespace dealii; + +template +void +test() +{ + deallog << "MappingP1<" << dim << ", " << spacedim << ">" << std::endl; + + const auto reference_cell = ReferenceCells::get_simplex(); + + Triangulation tria; + if constexpr (dim == 1) + GridGenerator::subdivided_hyper_cube(tria, 1, 1.0, 2.0, true); + else if constexpr (dim == 2 && spacedim == 3) + { + Triangulation tria_2d; + GridGenerator::subdivided_hyper_cube_with_simplices( + tria_2d, 1, 1.0, 2.0, true); + std::vector> points_2d; + std::vector> cell_data; + SubCellData subcell_data; + std::tie(points_2d, cell_data, subcell_data) = + GridTools::get_coarse_mesh_description(tria_2d); + + std::vector> points_3d; + for (const auto &p : points_2d) + points_3d.emplace_back(p[0], p[1], 1.0 + p[0] * p[0] + p[1] * p[1]); + + tria.create_triangulation(points_3d, cell_data, subcell_data); + } + else + GridGenerator::subdivided_hyper_cube_with_simplices( + tria, 1, 1.0, 2.0, true); + FE_SimplexP fe(1); + MappingP1 mapping; + MappingFE mapping_fe(fe); + + QGaussSimplex quadrature(2); + + UpdateFlags flags = + update_quadrature_points | update_JxW_values | update_jacobians | + update_jacobian_grads | update_inverse_jacobians | + update_jacobian_pushed_forward_grads | update_jacobian_2nd_derivatives | + update_jacobian_pushed_forward_2nd_derivatives | + update_jacobian_3rd_derivatives | + update_jacobian_pushed_forward_3rd_derivatives | update_volume_elements; + if (dim + 1 == spacedim) + flags |= update_normal_vectors | update_boundary_forms; + + FEValues fe_values(mapping, fe, quadrature, flags); + FEValues fe_values_2(mapping_fe, fe, quadrature, flags); + + for (const auto &cell : tria.active_cell_iterators()) + { + deallog << std::endl; + fe_values.reinit(cell); + fe_values_2.reinit(cell); + + deallog << "cell vertices" << std::endl; + for (const unsigned int vertex_no : cell->vertex_indices()) + deallog << " " << cell->vertex(vertex_no) << std::endl; + deallog << std::endl; + + deallog << "transform_unit_to_real_cell" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + const Point p = + mapping.transform_unit_to_real_cell(cell, quadrature.point(qp_n)); + deallog << " " << p << std::endl; + + Assert((p - fe_values_2.quadrature_point(qp_n)).norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + deallog << "transform_real_to_unit_cell" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + const Point p = mapping.transform_real_to_unit_cell( + cell, fe_values_2.quadrature_point(qp_n)); + deallog << " " << p << std::endl; + + Assert((quadrature.point(qp_n) - p).norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + deallog << "JxW" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " " << fe_values.JxW(qp_n) << std::endl; + + Assert(std::abs((fe_values.JxW(qp_n) - fe_values_2.JxW(qp_n))) < + 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + deallog << "quadrature points" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + const Point p = mapping.transform_real_to_unit_cell( + cell, fe_values.quadrature_point(qp_n)); + deallog << " " << p << " -> " << fe_values.quadrature_point(qp_n) + << std::endl; + Assert(reference_cell.contains_point(p, 1e-12), ExcInternalError()); + + Assert((fe_values.quadrature_point(qp_n) - + fe_values_2.quadrature_point(qp_n)) + .norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + if constexpr (dim + 1 == spacedim) + { + deallog << "normal vectors" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << fe_values.normal_vector(qp_n) << std::endl; + + Assert((fe_values.normal_vector(qp_n) - + fe_values_2.normal_vector(qp_n)) + .norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + } + + deallog << "Jacobians" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " " << fe_values.jacobian(qp_n) << std::endl; + + for (unsigned int d = 0; d < spacedim; ++d) + Assert((fe_values.jacobian(qp_n)[d] - fe_values_2.jacobian(qp_n)[d]) + .norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + deallog << "Jacobian gradients" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values.jacobian_grad(qp_n).norm() == 0) << std::endl; + + for (unsigned int d = 0; d < spacedim; ++d) + Assert((fe_values.jacobian_grad(qp_n)[d] - + fe_values_2.jacobian_grad(qp_n)[d]) + .norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + deallog << "inverse jacobians" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " " << fe_values.inverse_jacobian(qp_n) << std::endl; + + for (unsigned int d = 0; d < dim; ++d) + Assert((fe_values.inverse_jacobian(qp_n)[d] - + fe_values_2.inverse_jacobian(qp_n)[d]) + .norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + deallog << "Jacobian push forward gradients" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values.jacobian_pushed_forward_grad(qp_n).norm() == 0) + << std::endl; + } + deallog << std::endl; + + deallog << "Jacobian 2nd derivatives" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values.jacobian_2nd_derivative(qp_n).norm() == 0) + << std::endl; + } + deallog << std::endl; + + deallog << "Jacobian push forward 2nd derivatives" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values.jacobian_pushed_forward_2nd_derivative(qp_n) + .norm() == 0) + << std::endl; + } + deallog << std::endl; + + deallog << "Jacobian 3rd derivatives" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values.jacobian_3rd_derivative(qp_n).norm() == 0) + << std::endl; + } + deallog << std::endl; + + deallog << "Jacobian push forward 3rd derivatives" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values.jacobian_pushed_forward_3rd_derivative(qp_n) + .norm() == 0) + << std::endl; + } + deallog << std::endl; + } + + deallog << std::endl; +} + +int +main() +{ + initlog(); + + test<1>(); + test<1, 2>(); + test<2>(); + test<2, 3>(); + test<3>(); + + deallog << "OK" << std::endl; +} diff --git a/tests/simplex/mapping_p1_01.output b/tests/simplex/mapping_p1_01.output new file mode 100644 index 0000000000..4afd7d18ff --- /dev/null +++ b/tests/simplex/mapping_p1_01.output @@ -0,0 +1,961 @@ + +DEAL::MappingP1<1, 1> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 +DEAL:: 2.00000 +DEAL:: +DEAL::transform_unit_to_real_cell +DEAL:: 1.21132 +DEAL:: 1.78868 +DEAL:: +DEAL::transform_real_to_unit_cell +DEAL:: 0.211325 +DEAL:: 0.788675 +DEAL:: +DEAL::JxW +DEAL:: 0.500000 +DEAL:: 0.500000 +DEAL:: +DEAL::quadrature points +DEAL:: 0.211325 -> 1.21132 +DEAL:: 0.788675 -> 1.78868 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 +DEAL:: 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 +DEAL:: 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::MappingP1<1, 2> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 0.00000 +DEAL:: 2.00000 0.00000 +DEAL:: +DEAL::transform_unit_to_real_cell +DEAL:: 1.21132 0.00000 +DEAL:: 1.78868 0.00000 +DEAL:: +DEAL::transform_real_to_unit_cell +DEAL:: 0.211325 +DEAL:: 0.788675 +DEAL:: +DEAL::JxW +DEAL:: 0.500000 +DEAL:: 0.500000 +DEAL:: +DEAL::quadrature points +DEAL:: 0.211325 -> 1.21132 0.00000 +DEAL:: 0.788675 -> 1.78868 0.00000 +DEAL:: +DEAL::normal vectors +DEAL::-0.00000 1.00000 +DEAL::-0.00000 1.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 +DEAL:: 1.00000 0.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 0.00000 +DEAL:: 1.00000 0.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::MappingP1<2, 2> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 1.00000 +DEAL:: 2.00000 1.00000 +DEAL:: 1.00000 2.00000 +DEAL:: +DEAL::transform_unit_to_real_cell +DEAL:: 1.17856 1.15505 +DEAL:: 1.07503 1.64495 +DEAL:: 1.66639 1.15505 +DEAL:: 1.28002 1.64495 +DEAL:: +DEAL::transform_real_to_unit_cell +DEAL:: 0.178559 0.155051 +DEAL:: 0.0750311 0.644949 +DEAL:: 0.666390 0.155051 +DEAL:: 0.280020 0.644949 +DEAL:: +DEAL::JxW +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: +DEAL::quadrature points +DEAL:: 0.178559 0.155051 -> 1.17856 1.15505 +DEAL:: 0.0750311 0.644949 -> 1.07503 1.64495 +DEAL:: 0.666390 0.155051 -> 1.66639 1.15505 +DEAL:: 0.280020 0.644949 -> 1.28002 1.64495 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 2.00000 +DEAL:: 1.00000 2.00000 +DEAL:: 2.00000 1.00000 +DEAL:: +DEAL::transform_unit_to_real_cell +DEAL:: 1.82144 1.84495 +DEAL:: 1.92497 1.35505 +DEAL:: 1.33361 1.84495 +DEAL:: 1.71998 1.35505 +DEAL:: +DEAL::transform_real_to_unit_cell +DEAL:: 0.178559 0.155051 +DEAL:: 0.0750311 0.644949 +DEAL:: 0.666390 0.155051 +DEAL:: 0.280020 0.644949 +DEAL:: +DEAL::JxW +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: +DEAL::quadrature points +DEAL:: 0.178559 0.155051 -> 1.82144 1.84495 +DEAL:: 0.0750311 0.644949 -> 1.92497 1.35505 +DEAL:: 0.666390 0.155051 -> 1.33361 1.84495 +DEAL:: 0.280020 0.644949 -> 1.71998 1.35505 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::MappingP1<2, 3> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 1.00000 3.00000 +DEAL:: 2.00000 1.00000 6.00000 +DEAL:: 1.00000 2.00000 6.00000 +DEAL:: +DEAL::transform_unit_to_real_cell +DEAL:: 1.17856 1.15505 4.00083 +DEAL:: 1.07503 1.64495 5.15994 +DEAL:: 1.66639 1.15505 5.46432 +DEAL:: 1.28002 1.64495 5.77491 +DEAL:: +DEAL::transform_real_to_unit_cell +DEAL:: 0.178559 0.155051 +DEAL:: 0.0750311 0.644949 +DEAL:: 0.666390 0.155051 +DEAL:: 0.280020 0.644949 +DEAL:: +DEAL::JxW +DEAL:: 0.693155 +DEAL:: 0.396570 +DEAL:: 0.693155 +DEAL:: 0.396570 +DEAL:: +DEAL::quadrature points +DEAL:: 0.178559 0.155051 -> 1.17856 1.15505 4.00083 +DEAL:: 0.0750311 0.644949 -> 1.07503 1.64495 5.15994 +DEAL:: 0.666390 0.155051 -> 1.66639 1.15505 5.46432 +DEAL:: 0.280020 0.644949 -> 1.28002 1.64495 5.77491 +DEAL:: +DEAL::normal vectors +DEAL::-0.688247 -0.688247 0.229416 +DEAL::-0.688247 -0.688247 0.229416 +DEAL::-0.688247 -0.688247 0.229416 +DEAL::-0.688247 -0.688247 0.229416 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 2.00000 9.00000 +DEAL:: 1.00000 2.00000 6.00000 +DEAL:: 2.00000 1.00000 6.00000 +DEAL:: +DEAL::transform_unit_to_real_cell +DEAL:: 1.82144 1.84495 7.99917 +DEAL:: 1.92497 1.35505 6.84006 +DEAL:: 1.33361 1.84495 6.53568 +DEAL:: 1.71998 1.35505 6.22509 +DEAL:: +DEAL::transform_real_to_unit_cell +DEAL:: 0.178559 0.155051 +DEAL:: 0.0750311 0.644949 +DEAL:: 0.666390 0.155051 +DEAL:: 0.280020 0.644949 +DEAL:: +DEAL::JxW +DEAL:: 0.693155 +DEAL:: 0.396570 +DEAL:: 0.693155 +DEAL:: 0.396570 +DEAL:: +DEAL::quadrature points +DEAL:: 0.178559 0.155051 -> 1.82144 1.84495 7.99917 +DEAL:: 0.0750311 0.644949 -> 1.92497 1.35505 6.84006 +DEAL:: 0.666390 0.155051 -> 1.33361 1.84495 6.53568 +DEAL:: 0.280020 0.644949 -> 1.71998 1.35505 6.22509 +DEAL:: +DEAL::normal vectors +DEAL::-0.688247 -0.688247 0.229416 +DEAL::-0.688247 -0.688247 0.229416 +DEAL::-0.688247 -0.688247 0.229416 +DEAL::-0.688247 -0.688247 0.229416 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::MappingP1<3, 3> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 1.00000 1.00000 +DEAL:: 2.00000 1.00000 1.00000 +DEAL:: 1.00000 2.00000 1.00000 +DEAL:: 1.00000 1.00000 2.00000 +DEAL:: +DEAL::transform_unit_to_real_cell +DEAL:: 1.16200 1.18385 1.01272 +DEAL:: 1.01091 1.28152 1.36213 +DEAL:: 1.19012 1.01140 1.35862 +DEAL:: 1.17082 1.15282 1.63849 +DEAL:: 1.15869 1.58566 1.13085 +DEAL:: 1.57123 1.14692 1.14037 +DEAL:: +DEAL::transform_real_to_unit_cell +DEAL:: 0.162001 0.183850 0.0127184 +DEAL:: 0.0109052 0.281524 0.362127 +DEAL:: 0.190117 0.0114033 0.358621 +DEAL:: 0.170817 0.152818 0.638493 +DEAL:: 0.158685 0.585663 0.130847 +DEAL:: 0.571226 0.146918 0.140373 +DEAL:: +DEAL::JxW +DEAL:: 0.0203870 +DEAL:: 0.0213444 +DEAL:: 0.0220947 +DEAL:: 0.0234374 +DEAL:: 0.0374025 +DEAL:: 0.0420007 +DEAL:: +DEAL::quadrature points +DEAL:: 0.162001 0.183850 0.0127184 -> 1.16200 1.18385 1.01272 +DEAL:: 0.0109052 0.281524 0.362127 -> 1.01091 1.28152 1.36213 +DEAL:: 0.190117 0.0114033 0.358621 -> 1.19012 1.01140 1.35862 +DEAL:: 0.170817 0.152818 0.638493 -> 1.17082 1.15282 1.63849 +DEAL:: 0.158685 0.585663 0.130847 -> 1.15869 1.58566 1.13085 +DEAL:: 0.571226 0.146918 0.140373 -> 1.57123 1.14692 1.14037 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 2.00000 1.00000 +DEAL:: 2.00000 1.00000 1.00000 +DEAL:: 2.00000 2.00000 1.00000 +DEAL:: 2.00000 2.00000 2.00000 +DEAL:: +DEAL::transform_unit_to_real_cell +DEAL:: 1.35857 1.83800 1.01272 +DEAL:: 1.65456 1.98909 1.36213 +DEAL:: 1.56014 1.80988 1.35862 +DEAL:: 1.96213 1.82918 1.63849 +DEAL:: 1.87520 1.84131 1.13085 +DEAL:: 1.85852 1.42877 1.14037 +DEAL:: +DEAL::transform_real_to_unit_cell +DEAL:: 0.162001 0.183850 0.0127184 +DEAL:: 0.0109052 0.281524 0.362127 +DEAL:: 0.190117 0.0114033 0.358621 +DEAL:: 0.170817 0.152818 0.638493 +DEAL:: 0.158685 0.585663 0.130847 +DEAL:: 0.571226 0.146918 0.140373 +DEAL:: +DEAL::JxW +DEAL:: 0.0203870 +DEAL:: 0.0213444 +DEAL:: 0.0220947 +DEAL:: 0.0234374 +DEAL:: 0.0374025 +DEAL:: 0.0420007 +DEAL:: +DEAL::quadrature points +DEAL:: 0.162001 0.183850 0.0127184 -> 1.35857 1.83800 1.01272 +DEAL:: 0.0109052 0.281524 0.362127 -> 1.65456 1.98909 1.36213 +DEAL:: 0.190117 0.0114033 0.358621 -> 1.56014 1.80988 1.35862 +DEAL:: 0.170817 0.152818 0.638493 -> 1.96213 1.82918 1.63849 +DEAL:: 0.158685 0.585663 0.130847 -> 1.87520 1.84131 1.13085 +DEAL:: 0.571226 0.146918 0.140373 -> 1.85852 1.42877 1.14037 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 1.00000 1.00000 +DEAL:: 1.00000 1.00000 2.00000 +DEAL:: 2.00000 1.00000 2.00000 +DEAL:: 2.00000 2.00000 2.00000 +DEAL:: +DEAL::transform_unit_to_real_cell +DEAL:: 1.83800 1.01272 1.35857 +DEAL:: 1.98909 1.36213 1.65456 +DEAL:: 1.80988 1.35862 1.56014 +DEAL:: 1.82918 1.63849 1.96213 +DEAL:: 1.84131 1.13085 1.87520 +DEAL:: 1.42877 1.14037 1.85852 +DEAL:: +DEAL::transform_real_to_unit_cell +DEAL:: 0.162001 0.183850 0.0127184 +DEAL:: 0.0109052 0.281524 0.362127 +DEAL:: 0.190117 0.0114033 0.358621 +DEAL:: 0.170817 0.152818 0.638493 +DEAL:: 0.158685 0.585663 0.130847 +DEAL:: 0.571226 0.146918 0.140373 +DEAL:: +DEAL::JxW +DEAL:: 0.0203870 +DEAL:: 0.0213444 +DEAL:: 0.0220947 +DEAL:: 0.0234374 +DEAL:: 0.0374025 +DEAL:: 0.0420007 +DEAL:: +DEAL::quadrature points +DEAL:: 0.162001 0.183850 0.0127184 -> 1.83800 1.01272 1.35857 +DEAL:: 0.0109052 0.281524 0.362127 -> 1.98909 1.36213 1.65456 +DEAL:: 0.190117 0.0114033 0.358621 -> 1.80988 1.35862 1.56014 +DEAL:: 0.170817 0.152818 0.638493 -> 1.82918 1.63849 1.96213 +DEAL:: 0.158685 0.585663 0.130847 -> 1.84131 1.13085 1.87520 +DEAL:: 0.571226 0.146918 0.140373 -> 1.42877 1.14037 1.85852 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 2.00000 1.00000 +DEAL:: 1.00000 1.00000 2.00000 +DEAL:: 2.00000 2.00000 2.00000 +DEAL:: 1.00000 2.00000 2.00000 +DEAL:: +DEAL::transform_unit_to_real_cell +DEAL:: 1.18385 1.83800 1.35857 +DEAL:: 1.28152 1.98909 1.65456 +DEAL:: 1.01140 1.80988 1.56014 +DEAL:: 1.15282 1.82918 1.96213 +DEAL:: 1.58566 1.84131 1.87520 +DEAL:: 1.14692 1.42877 1.85852 +DEAL:: +DEAL::transform_real_to_unit_cell +DEAL:: 0.162001 0.183850 0.0127184 +DEAL:: 0.0109052 0.281524 0.362127 +DEAL:: 0.190117 0.0114033 0.358621 +DEAL:: 0.170817 0.152818 0.638493 +DEAL:: 0.158685 0.585663 0.130847 +DEAL:: 0.571226 0.146918 0.140373 +DEAL:: +DEAL::JxW +DEAL:: 0.0203870 +DEAL:: 0.0213444 +DEAL:: 0.0220947 +DEAL:: 0.0234374 +DEAL:: 0.0374025 +DEAL:: 0.0420007 +DEAL:: +DEAL::quadrature points +DEAL:: 0.162001 0.183850 0.0127184 -> 1.18385 1.83800 1.35857 +DEAL:: 0.0109052 0.281524 0.362127 -> 1.28152 1.98909 1.65456 +DEAL:: 0.190117 0.0114033 0.358621 -> 1.01140 1.80988 1.56014 +DEAL:: 0.170817 0.152818 0.638493 -> 1.15282 1.82918 1.96213 +DEAL:: 0.158685 0.585663 0.130847 -> 1.58566 1.84131 1.87520 +DEAL:: 0.571226 0.146918 0.140373 -> 1.14692 1.42877 1.85852 +DEAL:: +DEAL::Jacobians +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 1.00000 1.00000 +DEAL:: 1.00000 2.00000 1.00000 +DEAL:: 1.00000 1.00000 2.00000 +DEAL:: 2.00000 2.00000 2.00000 +DEAL:: +DEAL::transform_unit_to_real_cell +DEAL:: 1.65415 1.17472 1.19657 +DEAL:: 1.70757 1.37303 1.64365 +DEAL:: 1.79848 1.54874 1.37002 +DEAL:: 1.67636 1.80931 1.79131 +DEAL:: 1.25565 1.28953 1.71651 +DEAL:: 1.28186 1.71160 1.28729 +DEAL:: +DEAL::transform_real_to_unit_cell +DEAL:: 0.162001 0.183850 0.0127184 +DEAL:: 0.0109052 0.281524 0.362127 +DEAL:: 0.190117 0.0114033 0.358621 +DEAL:: 0.170817 0.152818 0.638493 +DEAL:: 0.158685 0.585663 0.130847 +DEAL:: 0.571226 0.146918 0.140373 +DEAL:: +DEAL::JxW +DEAL:: 0.0407740 +DEAL:: 0.0426888 +DEAL:: 0.0441893 +DEAL:: 0.0468748 +DEAL:: 0.0748051 +DEAL:: 0.0840013 +DEAL:: +DEAL::quadrature points +DEAL:: 0.162001 0.183850 0.0127184 -> 1.65415 1.17472 1.19657 +DEAL:: 0.0109052 0.281524 0.362127 -> 1.70757 1.37303 1.64365 +DEAL:: 0.190117 0.0114033 0.358621 -> 1.79848 1.54874 1.37002 +DEAL:: 0.170817 0.152818 0.638493 -> 1.67636 1.80931 1.79131 +DEAL:: 0.158685 0.585663 0.130847 -> 1.25565 1.28953 1.71651 +DEAL:: 0.571226 0.146918 0.140373 -> 1.28186 1.71160 1.28729 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::OK diff --git a/tests/simplex/mapping_p1_02.cc b/tests/simplex/mapping_p1_02.cc new file mode 100644 index 0000000000..cd430b354e --- /dev/null +++ b/tests/simplex/mapping_p1_02.cc @@ -0,0 +1,259 @@ +// ------------------------------------------------------------------------ +// +// SPDX-License-Identifier: LGPL-2.1-or-later +// Copyright (C) 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. +// +// ------------------------------------------------------------------------ + +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "../tests.h" + + +// Test MappingP1's face values by comparing with MappingFE. + +using namespace dealii; + +template +void +test() +{ + deallog << "MappingP1<" << dim << ", " << spacedim << ">" << std::endl; + + const auto reference_cell = ReferenceCells::get_simplex(); + + Triangulation tria; + if constexpr (dim == 1) + GridGenerator::subdivided_hyper_cube(tria, 1, 1.0, 2.0, true); + else if constexpr (dim == 2 && spacedim == 3) + { + Triangulation tria_2d; + GridGenerator::subdivided_hyper_cube_with_simplices( + tria_2d, 1, 1.0, 2.0, true); + std::vector> points_2d; + std::vector> cell_data; + SubCellData subcell_data; + std::tie(points_2d, cell_data, subcell_data) = + GridTools::get_coarse_mesh_description(tria_2d); + + std::vector> points_3d; + for (const auto &p : points_2d) + points_3d.emplace_back(p[0], p[1], 1.0 + p[0] * p[0] + p[1] * p[1]); + + tria.create_triangulation(points_3d, cell_data, subcell_data); + } + else + GridGenerator::subdivided_hyper_cube_with_simplices( + tria, 1, 1.0, 2.0, true); + FE_SimplexP fe(1); + MappingP1 mapping; + MappingFE mapping_fe(fe); + + QGaussSimplex quadrature(2); + + UpdateFlags flags = + update_quadrature_points | update_JxW_values | update_jacobians | + update_jacobian_grads | update_inverse_jacobians | + update_jacobian_pushed_forward_grads | update_jacobian_2nd_derivatives | + update_jacobian_pushed_forward_2nd_derivatives | + update_jacobian_3rd_derivatives | + update_jacobian_pushed_forward_3rd_derivatives | update_boundary_forms; + if (dim == spacedim) + flags |= update_normal_vectors; + + FEFaceValues fe_values(mapping, fe, quadrature, flags); + FEFaceValues fe_values_2(mapping_fe, fe, quadrature, flags); + + for (const auto &cell : tria.active_cell_iterators()) + { + deallog << std::endl; + + deallog << "cell vertices" << std::endl; + for (const unsigned int vertex_no : cell->vertex_indices()) + deallog << " " << cell->vertex(vertex_no) << std::endl; + deallog << std::endl; + + for (unsigned int face_no : cell->face_indices()) + { + fe_values.reinit(cell, face_no); + fe_values_2.reinit(cell, face_no); + + deallog << "JxW" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " " << fe_values.JxW(qp_n) << std::endl; + + Assert(std::abs((fe_values.JxW(qp_n) - fe_values_2.JxW(qp_n))) < + 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + deallog << "quadrature points" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + const Point p = mapping.transform_real_to_unit_cell( + cell, fe_values.quadrature_point(qp_n)); + deallog << " " << p << " -> " << fe_values.quadrature_point(qp_n) + << std::endl; + Assert(reference_cell.contains_point(p, 1e-12), + ExcInternalError()); + + Assert((fe_values.quadrature_point(qp_n) - + fe_values_2.quadrature_point(qp_n)) + .norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + deallog << "boundary forms" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << fe_values.normal_vector(qp_n) << std::endl; + + Assert((fe_values.boundary_form(qp_n) - + fe_values_2.boundary_form(qp_n)) + .norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + if constexpr (dim == spacedim) + { + deallog << "normal vectors" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << fe_values.normal_vector(qp_n) << std::endl; + + Assert((fe_values.normal_vector(qp_n) - + fe_values_2.normal_vector(qp_n)) + .norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + } + + deallog << "Jacobians" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " " << fe_values.jacobian(qp_n) << std::endl; + + for (unsigned int d = 0; d < spacedim; ++d) + Assert((fe_values.jacobian(qp_n)[d] - + fe_values_2.jacobian(qp_n)[d]) + .norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + deallog << "Jacobian gradients" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values.jacobian_grad(qp_n).norm() == 0) + << std::endl; + + for (unsigned int d = 0; d < spacedim; ++d) + Assert((fe_values.jacobian_grad(qp_n)[d] - + fe_values_2.jacobian_grad(qp_n)[d]) + .norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + deallog << "inverse jacobians" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " " << fe_values.inverse_jacobian(qp_n) << std::endl; + + for (unsigned int d = 0; d < dim; ++d) + Assert((fe_values.inverse_jacobian(qp_n)[d] - + fe_values_2.inverse_jacobian(qp_n)[d]) + .norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + deallog << "Jacobian push forward gradients" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values.jacobian_pushed_forward_grad(qp_n).norm() == + 0) + << std::endl; + } + deallog << std::endl; + + deallog << "Jacobian 2nd derivatives" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values.jacobian_2nd_derivative(qp_n).norm() == 0) + << std::endl; + } + deallog << std::endl; + + deallog << "Jacobian push forward 2nd derivatives" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values.jacobian_pushed_forward_2nd_derivative(qp_n) + .norm() == 0) + << std::endl; + } + deallog << std::endl; + + deallog << "Jacobian 3rd derivatives" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values.jacobian_3rd_derivative(qp_n).norm() == 0) + << std::endl; + } + deallog << std::endl; + + deallog << "Jacobian push forward 3rd derivatives" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values.jacobian_pushed_forward_3rd_derivative(qp_n) + .norm() == 0) + << std::endl; + } + deallog << std::endl; + } + } + + deallog << std::endl; +} + +int +main() +{ + initlog(); + + test<1>(); + test<1, 2>(); + test<2>(); + test<2, 3>(); + test<3>(); + + deallog << "OK" << std::endl; +} diff --git a/tests/simplex/mapping_p1_02.output b/tests/simplex/mapping_p1_02.output new file mode 100644 index 0000000000..1529107f63 --- /dev/null +++ b/tests/simplex/mapping_p1_02.output @@ -0,0 +1,2211 @@ + +DEAL::MappingP1<1, 1> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 +DEAL:: 2.00000 +DEAL:: +DEAL::JxW +DEAL:: 1.00000 +DEAL:: +DEAL::quadrature points +DEAL:: 0.00000 -> 1.00000 +DEAL:: +DEAL::boundary forms +DEAL::-1.00000 +DEAL:: +DEAL::normal vectors +DEAL::-1.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 1.00000 +DEAL:: +DEAL::quadrature points +DEAL:: 1.00000 -> 2.00000 +DEAL:: +DEAL::boundary forms +DEAL::1.00000 +DEAL:: +DEAL::normal vectors +DEAL::1.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::MappingP1<1, 2> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 0.00000 +DEAL:: 2.00000 0.00000 +DEAL:: +DEAL::JxW +DEAL:: 1.00000 +DEAL:: +DEAL::quadrature points +DEAL:: 0.00000 -> 1.00000 0.00000 +DEAL:: +DEAL::boundary forms +DEAL::-1.00000 -0.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 0.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 1.00000 +DEAL:: +DEAL::quadrature points +DEAL:: 1.00000 -> 2.00000 0.00000 +DEAL:: +DEAL::boundary forms +DEAL::1.00000 0.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 0.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::MappingP1<2, 2> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 1.00000 +DEAL:: 2.00000 1.00000 +DEAL:: 1.00000 2.00000 +DEAL:: +DEAL::JxW +DEAL:: 0.500000 +DEAL:: 0.500000 +DEAL:: +DEAL::quadrature points +DEAL:: 0.211325 0.00000 -> 1.21132 1.00000 +DEAL:: 0.788675 0.00000 -> 1.78868 1.00000 +DEAL:: +DEAL::boundary forms +DEAL::0.00000 -1.00000 +DEAL::0.00000 -1.00000 +DEAL:: +DEAL::normal vectors +DEAL::0.00000 -1.00000 +DEAL::0.00000 -1.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.707107 +DEAL:: 0.707107 +DEAL:: +DEAL::quadrature points +DEAL:: 0.788675 0.211325 -> 1.78868 1.21132 +DEAL:: 0.211325 0.788675 -> 1.21132 1.78868 +DEAL:: +DEAL::boundary forms +DEAL::0.707107 0.707107 +DEAL::0.707107 0.707107 +DEAL:: +DEAL::normal vectors +DEAL::0.707107 0.707107 +DEAL::0.707107 0.707107 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.500000 +DEAL:: 0.500000 +DEAL:: +DEAL::quadrature points +DEAL:: 0.00000 0.788675 -> 1.00000 1.78868 +DEAL:: 0.00000 0.211325 -> 1.00000 1.21132 +DEAL:: +DEAL::boundary forms +DEAL::-1.00000 0.00000 +DEAL::-1.00000 0.00000 +DEAL:: +DEAL::normal vectors +DEAL::-1.00000 0.00000 +DEAL::-1.00000 0.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 2.00000 +DEAL:: 1.00000 2.00000 +DEAL:: 2.00000 1.00000 +DEAL:: +DEAL::JxW +DEAL:: 0.500000 +DEAL:: 0.500000 +DEAL:: +DEAL::quadrature points +DEAL:: 0.211325 0.00000 -> 1.78868 2.00000 +DEAL:: 0.788675 0.00000 -> 1.21132 2.00000 +DEAL:: +DEAL::boundary forms +DEAL::0.00000 1.00000 +DEAL::0.00000 1.00000 +DEAL:: +DEAL::normal vectors +DEAL::0.00000 1.00000 +DEAL::0.00000 1.00000 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.707107 +DEAL:: 0.707107 +DEAL:: +DEAL::quadrature points +DEAL:: 0.211325 0.788675 -> 1.78868 1.21132 +DEAL:: 0.788675 0.211325 -> 1.21132 1.78868 +DEAL:: +DEAL::boundary forms +DEAL::-0.707107 -0.707107 +DEAL::-0.707107 -0.707107 +DEAL:: +DEAL::normal vectors +DEAL::-0.707107 -0.707107 +DEAL::-0.707107 -0.707107 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.500000 +DEAL:: 0.500000 +DEAL:: +DEAL::quadrature points +DEAL:: 0.00000 0.788675 -> 2.00000 1.21132 +DEAL:: 0.00000 0.211325 -> 2.00000 1.78868 +DEAL:: +DEAL::boundary forms +DEAL::1.00000 0.00000 +DEAL::1.00000 0.00000 +DEAL:: +DEAL::normal vectors +DEAL::1.00000 0.00000 +DEAL::1.00000 0.00000 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::MappingP1<2, 3> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 1.00000 3.00000 +DEAL:: 2.00000 1.00000 6.00000 +DEAL:: 1.00000 2.00000 6.00000 +DEAL:: +DEAL::JxW +DEAL:: 1.58114 +DEAL:: 1.58114 +DEAL:: +DEAL::quadrature points +DEAL:: 0.211325 0.00000 -> 1.21132 1.00000 3.63397 +DEAL:: 0.788675 1.11022e-16 -> 1.78868 1.00000 5.36603 +DEAL:: +DEAL::boundary forms +DEAL::0.652929 -0.725476 -0.217643 +DEAL::0.652929 -0.725476 -0.217643 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.707107 +DEAL:: 0.707107 +DEAL:: +DEAL::quadrature points +DEAL:: 0.788675 0.211325 -> 1.78868 1.21132 6.00000 +DEAL:: 0.211325 0.788675 -> 1.21132 1.78868 6.00000 +DEAL:: +DEAL::boundary forms +DEAL::0.162221 0.162221 0.973329 +DEAL::0.162221 0.162221 0.973329 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 1.58114 +DEAL:: 1.58114 +DEAL:: +DEAL::quadrature points +DEAL:: 1.11022e-16 0.788675 -> 1.00000 1.78868 5.36603 +DEAL:: 6.93889e-17 0.211325 -> 1.00000 1.21132 3.63397 +DEAL:: +DEAL::boundary forms +DEAL::-0.725476 0.652929 -0.217643 +DEAL::-0.725476 0.652929 -0.217643 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 2.00000 9.00000 +DEAL:: 1.00000 2.00000 6.00000 +DEAL:: 2.00000 1.00000 6.00000 +DEAL:: +DEAL::JxW +DEAL:: 1.58114 +DEAL:: 1.58114 +DEAL:: +DEAL::quadrature points +DEAL:: 0.211325 -6.93889e-17 -> 1.78868 2.00000 8.36603 +DEAL:: 0.788675 1.11022e-16 -> 1.21132 2.00000 6.63397 +DEAL:: +DEAL::boundary forms +DEAL::-0.652929 0.725476 0.217643 +DEAL::-0.652929 0.725476 0.217643 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.707107 +DEAL:: 0.707107 +DEAL:: +DEAL::quadrature points +DEAL:: 0.211325 0.788675 -> 1.78868 1.21132 6.00000 +DEAL:: 0.788675 0.211325 -> 1.21132 1.78868 6.00000 +DEAL:: +DEAL::boundary forms +DEAL::-0.162221 -0.162221 -0.973329 +DEAL::-0.162221 -0.162221 -0.973329 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 1.58114 +DEAL:: 1.58114 +DEAL:: +DEAL::quadrature points +DEAL:: 1.11022e-16 0.788675 -> 2.00000 1.21132 6.63397 +DEAL:: -6.93889e-17 0.211325 -> 2.00000 1.78868 8.36603 +DEAL:: +DEAL::boundary forms +DEAL::0.725476 -0.652929 0.217643 +DEAL::0.725476 -0.652929 0.217643 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::MappingP1<3, 3> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 1.00000 1.00000 +DEAL:: 2.00000 1.00000 1.00000 +DEAL:: 1.00000 2.00000 1.00000 +DEAL:: 1.00000 1.00000 2.00000 +DEAL:: +DEAL::JxW +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: +DEAL::quadrature points +DEAL:: 0.178559 0.155051 0.00000 -> 1.17856 1.15505 1.00000 +DEAL:: 0.0750311 0.644949 0.00000 -> 1.07503 1.64495 1.00000 +DEAL:: 0.666390 0.155051 0.00000 -> 1.66639 1.15505 1.00000 +DEAL:: 0.280020 0.644949 0.00000 -> 1.28002 1.64495 1.00000 +DEAL:: +DEAL::boundary forms +DEAL::0.00000 0.00000 -1.00000 +DEAL::0.00000 0.00000 -1.00000 +DEAL::0.00000 0.00000 -1.00000 +DEAL::0.00000 0.00000 -1.00000 +DEAL:: +DEAL::normal vectors +DEAL::0.00000 0.00000 -1.00000 +DEAL::0.00000 0.00000 -1.00000 +DEAL::0.00000 0.00000 -1.00000 +DEAL::0.00000 0.00000 -1.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: +DEAL::quadrature points +DEAL:: 0.666390 0.00000 0.155051 -> 1.66639 1.00000 1.15505 +DEAL:: 0.280020 0.00000 0.644949 -> 1.28002 1.00000 1.64495 +DEAL:: 0.178559 0.00000 0.155051 -> 1.17856 1.00000 1.15505 +DEAL:: 0.0750311 0.00000 0.644949 -> 1.07503 1.00000 1.64495 +DEAL:: +DEAL::boundary forms +DEAL::0.00000 -1.00000 0.00000 +DEAL::0.00000 -1.00000 0.00000 +DEAL::0.00000 -1.00000 0.00000 +DEAL::0.00000 -1.00000 0.00000 +DEAL:: +DEAL::normal vectors +DEAL::0.00000 -1.00000 0.00000 +DEAL::0.00000 -1.00000 0.00000 +DEAL::0.00000 -1.00000 0.00000 +DEAL::0.00000 -1.00000 0.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: +DEAL::quadrature points +DEAL:: 0.00000 0.178559 0.155051 -> 1.00000 1.17856 1.15505 +DEAL:: 0.00000 0.0750311 0.644949 -> 1.00000 1.07503 1.64495 +DEAL:: 0.00000 0.666390 0.155051 -> 1.00000 1.66639 1.15505 +DEAL:: 0.00000 0.280020 0.644949 -> 1.00000 1.28002 1.64495 +DEAL:: +DEAL::boundary forms +DEAL::-1.00000 0.00000 0.00000 +DEAL::-1.00000 0.00000 0.00000 +DEAL::-1.00000 0.00000 0.00000 +DEAL::-1.00000 0.00000 0.00000 +DEAL:: +DEAL::normal vectors +DEAL::-1.00000 0.00000 0.00000 +DEAL::-1.00000 0.00000 0.00000 +DEAL::-1.00000 0.00000 0.00000 +DEAL::-1.00000 0.00000 0.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.275432 +DEAL:: 0.157581 +DEAL:: 0.275432 +DEAL:: 0.157581 +DEAL:: +DEAL::quadrature points +DEAL:: 0.178559 0.666390 0.155051 -> 1.17856 1.66639 1.15505 +DEAL:: 0.0750311 0.280020 0.644949 -> 1.07503 1.28002 1.64495 +DEAL:: 0.666390 0.178559 0.155051 -> 1.66639 1.17856 1.15505 +DEAL:: 0.280020 0.0750311 0.644949 -> 1.28002 1.07503 1.64495 +DEAL:: +DEAL::boundary forms +DEAL::0.577350 0.577350 0.577350 +DEAL::0.577350 0.577350 0.577350 +DEAL::0.577350 0.577350 0.577350 +DEAL::0.577350 0.577350 0.577350 +DEAL:: +DEAL::normal vectors +DEAL::0.577350 0.577350 0.577350 +DEAL::0.577350 0.577350 0.577350 +DEAL::0.577350 0.577350 0.577350 +DEAL::0.577350 0.577350 0.577350 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 2.00000 1.00000 +DEAL:: 2.00000 1.00000 1.00000 +DEAL:: 2.00000 2.00000 1.00000 +DEAL:: 2.00000 2.00000 2.00000 +DEAL:: +DEAL::JxW +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: +DEAL::quadrature points +DEAL:: 0.178559 0.155051 0.00000 -> 1.33361 1.82144 1.00000 +DEAL:: 0.0750311 0.644949 0.00000 -> 1.71998 1.92497 1.00000 +DEAL:: 0.666390 0.155051 0.00000 -> 1.82144 1.33361 1.00000 +DEAL:: 0.280020 0.644949 0.00000 -> 1.92497 1.71998 1.00000 +DEAL:: +DEAL::boundary forms +DEAL::0.00000 0.00000 -1.00000 +DEAL::0.00000 0.00000 -1.00000 +DEAL::0.00000 0.00000 -1.00000 +DEAL::0.00000 0.00000 -1.00000 +DEAL:: +DEAL::normal vectors +DEAL::0.00000 0.00000 -1.00000 +DEAL::0.00000 0.00000 -1.00000 +DEAL::0.00000 0.00000 -1.00000 +DEAL::0.00000 0.00000 -1.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.275432 +DEAL:: 0.157581 +DEAL:: 0.275432 +DEAL:: 0.157581 +DEAL:: +DEAL::quadrature points +DEAL:: 0.666390 2.22045e-16 0.155051 -> 1.82144 1.33361 1.15505 +DEAL:: 0.280020 0.00000 0.644949 -> 1.92497 1.71998 1.64495 +DEAL:: 0.178559 2.22045e-16 0.155051 -> 1.33361 1.82144 1.15505 +DEAL:: 0.0750311 0.00000 0.644949 -> 1.71998 1.92497 1.64495 +DEAL:: +DEAL::boundary forms +DEAL::-0.577350 -0.577350 0.577350 +DEAL::-0.577350 -0.577350 0.577350 +DEAL::-0.577350 -0.577350 0.577350 +DEAL::-0.577350 -0.577350 0.577350 +DEAL:: +DEAL::normal vectors +DEAL::-0.577350 -0.577350 0.577350 +DEAL::-0.577350 -0.577350 0.577350 +DEAL::-0.577350 -0.577350 0.577350 +DEAL::-0.577350 -0.577350 0.577350 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: +DEAL::quadrature points +DEAL:: 0.00000 0.178559 0.155051 -> 1.33361 2.00000 1.15505 +DEAL:: 0.00000 0.0750311 0.644949 -> 1.71998 2.00000 1.64495 +DEAL:: 0.00000 0.666390 0.155051 -> 1.82144 2.00000 1.15505 +DEAL:: 0.00000 0.280020 0.644949 -> 1.92497 2.00000 1.64495 +DEAL:: +DEAL::boundary forms +DEAL::0.00000 1.00000 0.00000 +DEAL::0.00000 1.00000 0.00000 +DEAL::0.00000 1.00000 0.00000 +DEAL::0.00000 1.00000 0.00000 +DEAL:: +DEAL::normal vectors +DEAL::0.00000 1.00000 0.00000 +DEAL::0.00000 1.00000 0.00000 +DEAL::0.00000 1.00000 0.00000 +DEAL::0.00000 1.00000 0.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: +DEAL::quadrature points +DEAL:: 0.178559 0.666390 0.155051 -> 2.00000 1.82144 1.15505 +DEAL:: 0.0750311 0.280020 0.644949 -> 2.00000 1.92497 1.64495 +DEAL:: 0.666390 0.178559 0.155051 -> 2.00000 1.33361 1.15505 +DEAL:: 0.280020 0.0750311 0.644949 -> 2.00000 1.71998 1.64495 +DEAL:: +DEAL::boundary forms +DEAL::1.00000 0.00000 0.00000 +DEAL::1.00000 0.00000 0.00000 +DEAL::1.00000 0.00000 0.00000 +DEAL::1.00000 0.00000 0.00000 +DEAL:: +DEAL::normal vectors +DEAL::1.00000 0.00000 0.00000 +DEAL::1.00000 0.00000 0.00000 +DEAL::1.00000 0.00000 0.00000 +DEAL::1.00000 0.00000 0.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 1.00000 1.00000 -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 1.00000 -1.00000 -0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 1.00000 1.00000 +DEAL:: 1.00000 1.00000 2.00000 +DEAL:: 2.00000 1.00000 2.00000 +DEAL:: 2.00000 2.00000 2.00000 +DEAL:: +DEAL::JxW +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: +DEAL::quadrature points +DEAL:: 0.178559 0.155051 0.00000 -> 1.82144 1.00000 1.33361 +DEAL:: 0.0750311 0.644949 0.00000 -> 1.92497 1.00000 1.71998 +DEAL:: 0.666390 0.155051 0.00000 -> 1.33361 1.00000 1.82144 +DEAL:: 0.280020 0.644949 0.00000 -> 1.71998 1.00000 1.92497 +DEAL:: +DEAL::boundary forms +DEAL::0.00000 -1.00000 0.00000 +DEAL::0.00000 -1.00000 0.00000 +DEAL::0.00000 -1.00000 0.00000 +DEAL::0.00000 -1.00000 0.00000 +DEAL:: +DEAL::normal vectors +DEAL::0.00000 -1.00000 0.00000 +DEAL::0.00000 -1.00000 0.00000 +DEAL::0.00000 -1.00000 0.00000 +DEAL::0.00000 -1.00000 0.00000 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.275432 +DEAL:: 0.157581 +DEAL:: 0.275432 +DEAL:: 0.157581 +DEAL:: +DEAL::quadrature points +DEAL:: 0.666390 2.22045e-16 0.155051 -> 1.33361 1.15505 1.82144 +DEAL:: 0.280020 0.00000 0.644949 -> 1.71998 1.64495 1.92497 +DEAL:: 0.178559 2.22045e-16 0.155051 -> 1.82144 1.15505 1.33361 +DEAL:: 0.0750311 0.00000 0.644949 -> 1.92497 1.64495 1.71998 +DEAL:: +DEAL::boundary forms +DEAL::-0.577350 0.577350 -0.577350 +DEAL::-0.577350 0.577350 -0.577350 +DEAL::-0.577350 0.577350 -0.577350 +DEAL::-0.577350 0.577350 -0.577350 +DEAL:: +DEAL::normal vectors +DEAL::-0.577350 0.577350 -0.577350 +DEAL::-0.577350 0.577350 -0.577350 +DEAL::-0.577350 0.577350 -0.577350 +DEAL::-0.577350 0.577350 -0.577350 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: +DEAL::quadrature points +DEAL:: 0.00000 0.178559 0.155051 -> 2.00000 1.15505 1.33361 +DEAL:: 0.00000 0.0750311 0.644949 -> 2.00000 1.64495 1.71998 +DEAL:: 0.00000 0.666390 0.155051 -> 2.00000 1.15505 1.82144 +DEAL:: 0.00000 0.280020 0.644949 -> 2.00000 1.64495 1.92497 +DEAL:: +DEAL::boundary forms +DEAL::1.00000 0.00000 0.00000 +DEAL::1.00000 0.00000 0.00000 +DEAL::1.00000 0.00000 0.00000 +DEAL::1.00000 0.00000 0.00000 +DEAL:: +DEAL::normal vectors +DEAL::1.00000 0.00000 0.00000 +DEAL::1.00000 0.00000 0.00000 +DEAL::1.00000 0.00000 0.00000 +DEAL::1.00000 0.00000 0.00000 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: +DEAL::quadrature points +DEAL:: 0.178559 0.666390 0.155051 -> 1.82144 1.15505 2.00000 +DEAL:: 0.0750311 0.280020 0.644949 -> 1.92497 1.64495 2.00000 +DEAL:: 0.666390 0.178559 0.155051 -> 1.33361 1.15505 2.00000 +DEAL:: 0.280020 0.0750311 0.644949 -> 1.71998 1.64495 2.00000 +DEAL:: +DEAL::boundary forms +DEAL::0.00000 0.00000 1.00000 +DEAL::0.00000 0.00000 1.00000 +DEAL::0.00000 0.00000 1.00000 +DEAL::0.00000 0.00000 1.00000 +DEAL:: +DEAL::normal vectors +DEAL::0.00000 0.00000 1.00000 +DEAL::0.00000 0.00000 1.00000 +DEAL::0.00000 0.00000 1.00000 +DEAL::0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: -1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: -1.00000 0.00000 0.00000 1.00000 -1.00000 1.00000 0.00000 1.00000 -0.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 2.00000 1.00000 +DEAL:: 1.00000 1.00000 2.00000 +DEAL:: 2.00000 2.00000 2.00000 +DEAL:: 1.00000 2.00000 2.00000 +DEAL:: +DEAL::JxW +DEAL:: 0.275432 +DEAL:: 0.157581 +DEAL:: 0.275432 +DEAL:: 0.157581 +DEAL:: +DEAL::quadrature points +DEAL:: 0.178559 0.155051 0.00000 -> 1.15505 1.82144 1.33361 +DEAL:: 0.0750311 0.644949 -2.22045e-16 -> 1.64495 1.92497 1.71998 +DEAL:: 0.666390 0.155051 2.22045e-16 -> 1.15505 1.33361 1.82144 +DEAL:: 0.280020 0.644949 -2.22045e-16 -> 1.64495 1.71998 1.92497 +DEAL:: +DEAL::boundary forms +DEAL::0.577350 -0.577350 -0.577350 +DEAL::0.577350 -0.577350 -0.577350 +DEAL::0.577350 -0.577350 -0.577350 +DEAL::0.577350 -0.577350 -0.577350 +DEAL:: +DEAL::normal vectors +DEAL::0.577350 -0.577350 -0.577350 +DEAL::0.577350 -0.577350 -0.577350 +DEAL::0.577350 -0.577350 -0.577350 +DEAL::0.577350 -0.577350 -0.577350 +DEAL:: +DEAL::Jacobians +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: +DEAL::quadrature points +DEAL:: 0.666390 0.00000 0.155051 -> 1.00000 1.33361 1.82144 +DEAL:: 0.280020 0.00000 0.644949 -> 1.00000 1.71998 1.92497 +DEAL:: 0.178559 0.00000 0.155051 -> 1.00000 1.82144 1.33361 +DEAL:: 0.0750311 0.00000 0.644949 -> 1.00000 1.92497 1.71998 +DEAL:: +DEAL::boundary forms +DEAL::-1.00000 0.00000 0.00000 +DEAL::-1.00000 0.00000 0.00000 +DEAL::-1.00000 0.00000 0.00000 +DEAL::-1.00000 0.00000 0.00000 +DEAL:: +DEAL::normal vectors +DEAL::-1.00000 0.00000 0.00000 +DEAL::-1.00000 0.00000 0.00000 +DEAL::-1.00000 0.00000 0.00000 +DEAL::-1.00000 0.00000 0.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: +DEAL::quadrature points +DEAL:: 0.00000 0.178559 0.155051 -> 1.17856 2.00000 1.33361 +DEAL:: 0.00000 0.0750311 0.644949 -> 1.07503 2.00000 1.71998 +DEAL:: 0.00000 0.666390 0.155051 -> 1.66639 2.00000 1.82144 +DEAL:: 0.00000 0.280020 0.644949 -> 1.28002 2.00000 1.92497 +DEAL:: +DEAL::boundary forms +DEAL::0.00000 1.00000 0.00000 +DEAL::0.00000 1.00000 0.00000 +DEAL::0.00000 1.00000 0.00000 +DEAL::0.00000 1.00000 0.00000 +DEAL:: +DEAL::normal vectors +DEAL::0.00000 1.00000 0.00000 +DEAL::0.00000 1.00000 0.00000 +DEAL::0.00000 1.00000 0.00000 +DEAL::0.00000 1.00000 0.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: 0.159021 +DEAL:: 0.0909793 +DEAL:: +DEAL::quadrature points +DEAL:: 0.178559 0.666390 0.155051 -> 1.66639 1.82144 2.00000 +DEAL:: 0.0750311 0.280020 0.644949 -> 1.28002 1.92497 2.00000 +DEAL:: 0.666390 0.178559 0.155051 -> 1.17856 1.33361 2.00000 +DEAL:: 0.280020 0.0750311 0.644949 -> 1.07503 1.71998 2.00000 +DEAL:: +DEAL::boundary forms +DEAL::0.00000 0.00000 1.00000 +DEAL::0.00000 0.00000 1.00000 +DEAL::0.00000 0.00000 1.00000 +DEAL::0.00000 0.00000 1.00000 +DEAL:: +DEAL::normal vectors +DEAL::0.00000 0.00000 1.00000 +DEAL::0.00000 0.00000 1.00000 +DEAL::0.00000 0.00000 1.00000 +DEAL::0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 1.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: 0.00000 -1.00000 0.00000 1.00000 0.00000 -0.00000 -1.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 1.00000 1.00000 +DEAL:: 1.00000 2.00000 1.00000 +DEAL:: 1.00000 1.00000 2.00000 +DEAL:: 2.00000 2.00000 2.00000 +DEAL:: +DEAL::JxW +DEAL:: 0.275432 +DEAL:: 0.157581 +DEAL:: 0.275432 +DEAL:: 0.157581 +DEAL:: +DEAL::quadrature points +DEAL:: 0.666390 0.155051 -1.11022e-16 -> 1.17856 1.66639 1.15505 +DEAL:: 0.280020 0.644949 0.00000 -> 1.07503 1.28002 1.64495 +DEAL:: 0.178559 0.155051 -1.11022e-16 -> 1.66639 1.17856 1.15505 +DEAL:: 0.0750311 0.644949 0.00000 -> 1.28002 1.07503 1.64495 +DEAL:: +DEAL::boundary forms +DEAL::-0.577350 -0.577350 -0.577350 +DEAL::-0.577350 -0.577350 -0.577350 +DEAL::-0.577350 -0.577350 -0.577350 +DEAL::-0.577350 -0.577350 -0.577350 +DEAL:: +DEAL::normal vectors +DEAL::-0.577350 -0.577350 -0.577350 +DEAL::-0.577350 -0.577350 -0.577350 +DEAL::-0.577350 -0.577350 -0.577350 +DEAL::-0.577350 -0.577350 -0.577350 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.275432 +DEAL:: 0.157581 +DEAL:: 0.275432 +DEAL:: 0.157581 +DEAL:: +DEAL::quadrature points +DEAL:: 0.178559 0.00000 0.155051 -> 1.82144 1.33361 1.15505 +DEAL:: 0.0750311 1.11022e-16 0.644949 -> 1.92497 1.71998 1.64495 +DEAL:: 0.666390 -1.11022e-16 0.155051 -> 1.33361 1.82144 1.15505 +DEAL:: 0.280020 1.11022e-16 0.644949 -> 1.71998 1.92497 1.64495 +DEAL:: +DEAL::boundary forms +DEAL::0.577350 0.577350 -0.577350 +DEAL::0.577350 0.577350 -0.577350 +DEAL::0.577350 0.577350 -0.577350 +DEAL::0.577350 0.577350 -0.577350 +DEAL:: +DEAL::normal vectors +DEAL::0.577350 0.577350 -0.577350 +DEAL::0.577350 0.577350 -0.577350 +DEAL::0.577350 0.577350 -0.577350 +DEAL::0.577350 0.577350 -0.577350 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.275432 +DEAL:: 0.157581 +DEAL:: 0.275432 +DEAL:: 0.157581 +DEAL:: +DEAL::quadrature points +DEAL:: -1.11022e-16 0.666390 0.155051 -> 1.33361 1.15505 1.82144 +DEAL:: 0.00000 0.280020 0.644949 -> 1.71998 1.64495 1.92497 +DEAL:: -1.11022e-16 0.178559 0.155051 -> 1.82144 1.15505 1.33361 +DEAL:: 0.00000 0.0750311 0.644949 -> 1.92497 1.64495 1.71998 +DEAL:: +DEAL::boundary forms +DEAL::0.577350 -0.577350 0.577350 +DEAL::0.577350 -0.577350 0.577350 +DEAL::0.577350 -0.577350 0.577350 +DEAL::0.577350 -0.577350 0.577350 +DEAL:: +DEAL::normal vectors +DEAL::0.577350 -0.577350 0.577350 +DEAL::0.577350 -0.577350 0.577350 +DEAL::0.577350 -0.577350 0.577350 +DEAL::0.577350 -0.577350 0.577350 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.275432 +DEAL:: 0.157581 +DEAL:: 0.275432 +DEAL:: 0.157581 +DEAL:: +DEAL::quadrature points +DEAL:: 0.666390 0.178559 0.155051 -> 1.15505 1.82144 1.33361 +DEAL:: 0.280020 0.0750311 0.644949 -> 1.64495 1.92497 1.71998 +DEAL:: 0.178559 0.666390 0.155051 -> 1.15505 1.33361 1.82144 +DEAL:: 0.0750311 0.280020 0.644949 -> 1.64495 1.71998 1.92497 +DEAL:: +DEAL::boundary forms +DEAL::-0.577350 0.577350 0.577350 +DEAL::-0.577350 0.577350 0.577350 +DEAL::-0.577350 0.577350 0.577350 +DEAL::-0.577350 0.577350 0.577350 +DEAL:: +DEAL::normal vectors +DEAL::-0.577350 0.577350 0.577350 +DEAL::-0.577350 0.577350 0.577350 +DEAL::-0.577350 0.577350 0.577350 +DEAL::-0.577350 0.577350 0.577350 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: -1.00000 -1.00000 0.00000 1.00000 0.00000 1.00000 0.00000 1.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: -0.500000 0.500000 -0.500000 -0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::OK diff --git a/tests/simplex/mapping_p1_03.cc b/tests/simplex/mapping_p1_03.cc new file mode 100644 index 0000000000..ce00e897b9 --- /dev/null +++ b/tests/simplex/mapping_p1_03.cc @@ -0,0 +1,261 @@ +// ------------------------------------------------------------------------ +// +// SPDX-License-Identifier: LGPL-2.1-or-later +// Copyright (C) 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. +// +// ------------------------------------------------------------------------ + +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "../tests.h" + + +// Test MappingP1's subface values by comparing with MappingFE. + +using namespace dealii; + +template +void +test() +{ + deallog << "MappingP1<" << dim << ", " << spacedim << ">" << std::endl; + + const auto reference_cell = ReferenceCells::get_simplex(); + + Triangulation tria; + if constexpr (dim == 1) + GridGenerator::subdivided_hyper_cube(tria, 1, 1.0, 2.0, true); + else if constexpr (dim == 2 && spacedim == 3) + { + Triangulation tria_2d; + GridGenerator::subdivided_hyper_cube_with_simplices( + tria_2d, 1, 1.0, 2.0, true); + std::vector> points_2d; + std::vector> cell_data; + SubCellData subcell_data; + std::tie(points_2d, cell_data, subcell_data) = + GridTools::get_coarse_mesh_description(tria_2d); + + std::vector> points_3d; + for (const auto &p : points_2d) + points_3d.emplace_back(p[0], p[1], 1.0 + p[0] * p[0] + p[1] * p[1]); + + tria.create_triangulation(points_3d, cell_data, subcell_data); + } + else + GridGenerator::subdivided_hyper_cube_with_simplices( + tria, 1, 1.0, 2.0, true); + FE_SimplexP fe(1); + MappingP1 mapping; + MappingFE mapping_fe(fe); + + QGaussSimplex quadrature(2); + + UpdateFlags flags = + update_quadrature_points | update_JxW_values | update_jacobians | + update_jacobian_grads | update_inverse_jacobians | + update_jacobian_pushed_forward_grads | update_jacobian_2nd_derivatives | + update_jacobian_pushed_forward_2nd_derivatives | + update_jacobian_3rd_derivatives | + update_jacobian_pushed_forward_3rd_derivatives; + if (dim == spacedim) + flags |= update_normal_vectors; + + FESubfaceValues fe_values(mapping, fe, quadrature, flags); + FESubfaceValues fe_values_2(mapping_fe, fe, quadrature, flags); + + // Same as the other tests: bypass the check for whether or not the current + // face actually has children by using a DoFHandler instead of a Triangulation + DoFHandler dof_handler(tria); + dof_handler.distribute_dofs(fe); + + for (const auto &cell : dof_handler.active_cell_iterators()) + { + deallog << std::endl; + + deallog << "cell vertices" << std::endl; + for (const unsigned int vertex_no : cell->vertex_indices()) + deallog << " " << cell->vertex(vertex_no) << std::endl; + deallog << std::endl; + + for (unsigned int face_no : cell->face_indices()) + { + for (unsigned int subface_no = 0; subface_no < (dim == 2 ? 2 : 4); + ++subface_no) + + { + fe_values.reinit(cell, face_no, subface_no); + fe_values_2.reinit(cell, face_no, subface_no); + + deallog << "JxW" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " " << fe_values.JxW(qp_n) << std::endl; + + Assert(std::abs((fe_values.JxW(qp_n) - + fe_values_2.JxW(qp_n))) < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + deallog << "quadrature points" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + const Point p = mapping.transform_real_to_unit_cell( + cell, fe_values.quadrature_point(qp_n)); + deallog << " " << p << " -> " + << fe_values.quadrature_point(qp_n) << std::endl; + Assert(reference_cell.contains_point(p, 1e-12), + ExcInternalError()); + + Assert((fe_values.quadrature_point(qp_n) - + fe_values_2.quadrature_point(qp_n)) + .norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + if constexpr (dim == spacedim) + { + deallog << "normal vectors" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << fe_values.normal_vector(qp_n) << std::endl; + + Assert((fe_values.normal_vector(qp_n) - + fe_values_2.normal_vector(qp_n)) + .norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + } + + deallog << "Jacobians" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " " << fe_values.jacobian(qp_n) << std::endl; + + for (unsigned int d = 0; d < spacedim; ++d) + Assert((fe_values.jacobian(qp_n)[d] - + fe_values_2.jacobian(qp_n)[d]) + .norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + deallog << "Jacobian gradients" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values.jacobian_grad(qp_n).norm() == 0) + << std::endl; + + for (unsigned int d = 0; d < spacedim; ++d) + Assert((fe_values.jacobian_grad(qp_n)[d] - + fe_values_2.jacobian_grad(qp_n)[d]) + .norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + deallog << "inverse jacobians" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " " << fe_values.inverse_jacobian(qp_n) + << std::endl; + + for (unsigned int d = 0; d < dim; ++d) + Assert((fe_values.inverse_jacobian(qp_n)[d] - + fe_values_2.inverse_jacobian(qp_n)[d]) + .norm() < 1e-12, + ExcInternalError()); + } + deallog << std::endl; + + deallog << "Jacobian push forward gradients" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values.jacobian_pushed_forward_grad(qp_n) + .norm() == 0) + << std::endl; + } + deallog << std::endl; + + deallog << "Jacobian 2nd derivatives" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values.jacobian_2nd_derivative(qp_n).norm() == + 0) + << std::endl; + } + deallog << std::endl; + + deallog << "Jacobian push forward 2nd derivatives" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values + .jacobian_pushed_forward_2nd_derivative(qp_n) + .norm() == 0) + << std::endl; + } + deallog << std::endl; + + deallog << "Jacobian 3rd derivatives" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values.jacobian_3rd_derivative(qp_n).norm() == + 0) + << std::endl; + } + deallog << std::endl; + + deallog << "Jacobian push forward 3rd derivatives" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + deallog << " all zero = " + << (fe_values + .jacobian_pushed_forward_3rd_derivative(qp_n) + .norm() == 0) + << std::endl; + } + deallog << std::endl; + } + } + } + + deallog << std::endl; +} + +int +main() +{ + initlog(); + + test<2>(); + test<2, 3>(); + // At the present time we do not support tetrahedral subfaces + // test<3>(); + + deallog << "OK" << std::endl; +} diff --git a/tests/simplex/mapping_p1_03.output b/tests/simplex/mapping_p1_03.output new file mode 100644 index 0000000000..6c1f12fd90 --- /dev/null +++ b/tests/simplex/mapping_p1_03.output @@ -0,0 +1,1038 @@ + +DEAL::MappingP1<2, 2> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 1.00000 +DEAL:: 2.00000 1.00000 +DEAL:: 1.00000 2.00000 +DEAL:: +DEAL::JxW +DEAL:: 0.250000 +DEAL:: 0.250000 +DEAL:: +DEAL::quadrature points +DEAL:: 0.105662 0.00000 -> 1.10566 1.00000 +DEAL:: 0.394338 0.00000 -> 1.39434 1.00000 +DEAL:: +DEAL::normal vectors +DEAL::0.00000 -1.00000 +DEAL::0.00000 -1.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.250000 +DEAL:: 0.250000 +DEAL:: +DEAL::quadrature points +DEAL:: 0.605662 0.00000 -> 1.60566 1.00000 +DEAL:: 0.894338 0.00000 -> 1.89434 1.00000 +DEAL:: +DEAL::normal vectors +DEAL::0.00000 -1.00000 +DEAL::0.00000 -1.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.353553 +DEAL:: 0.353553 +DEAL:: +DEAL::quadrature points +DEAL:: 0.894338 0.105662 -> 1.89434 1.10566 +DEAL:: 0.605662 0.394338 -> 1.60566 1.39434 +DEAL:: +DEAL::normal vectors +DEAL::0.707107 0.707107 +DEAL::0.707107 0.707107 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.353553 +DEAL:: 0.353553 +DEAL:: +DEAL::quadrature points +DEAL:: 0.394338 0.605662 -> 1.39434 1.60566 +DEAL:: 0.105662 0.894338 -> 1.10566 1.89434 +DEAL:: +DEAL::normal vectors +DEAL::0.707107 0.707107 +DEAL::0.707107 0.707107 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.250000 +DEAL:: 0.250000 +DEAL:: +DEAL::quadrature points +DEAL:: 0.00000 0.894338 -> 1.00000 1.89434 +DEAL:: 0.00000 0.605662 -> 1.00000 1.60566 +DEAL:: +DEAL::normal vectors +DEAL::-1.00000 0.00000 +DEAL::-1.00000 0.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.250000 +DEAL:: 0.250000 +DEAL:: +DEAL::quadrature points +DEAL:: 0.00000 0.394338 -> 1.00000 1.39434 +DEAL:: 0.00000 0.105662 -> 1.00000 1.10566 +DEAL:: +DEAL::normal vectors +DEAL::-1.00000 0.00000 +DEAL::-1.00000 0.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: 1.00000 -0.00000 -0.00000 1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 2.00000 +DEAL:: 1.00000 2.00000 +DEAL:: 2.00000 1.00000 +DEAL:: +DEAL::JxW +DEAL:: 0.250000 +DEAL:: 0.250000 +DEAL:: +DEAL::quadrature points +DEAL:: 0.105662 0.00000 -> 1.89434 2.00000 +DEAL:: 0.394338 0.00000 -> 1.60566 2.00000 +DEAL:: +DEAL::normal vectors +DEAL::0.00000 1.00000 +DEAL::0.00000 1.00000 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.250000 +DEAL:: 0.250000 +DEAL:: +DEAL::quadrature points +DEAL:: 0.605662 0.00000 -> 1.39434 2.00000 +DEAL:: 0.894338 0.00000 -> 1.10566 2.00000 +DEAL:: +DEAL::normal vectors +DEAL::0.00000 1.00000 +DEAL::0.00000 1.00000 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.353553 +DEAL:: 0.353553 +DEAL:: +DEAL::quadrature points +DEAL:: 0.105662 0.894338 -> 1.89434 1.10566 +DEAL:: 0.394338 0.605662 -> 1.60566 1.39434 +DEAL:: +DEAL::normal vectors +DEAL::-0.707107 -0.707107 +DEAL::-0.707107 -0.707107 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.353553 +DEAL:: 0.353553 +DEAL:: +DEAL::quadrature points +DEAL:: 0.605662 0.394338 -> 1.39434 1.60566 +DEAL:: 0.894338 0.105662 -> 1.10566 1.89434 +DEAL:: +DEAL::normal vectors +DEAL::-0.707107 -0.707107 +DEAL::-0.707107 -0.707107 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.250000 +DEAL:: 0.250000 +DEAL:: +DEAL::quadrature points +DEAL:: 0.00000 0.894338 -> 2.00000 1.10566 +DEAL:: 0.00000 0.605662 -> 2.00000 1.39434 +DEAL:: +DEAL::normal vectors +DEAL::1.00000 0.00000 +DEAL::1.00000 0.00000 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.250000 +DEAL:: 0.250000 +DEAL:: +DEAL::quadrature points +DEAL:: 0.00000 0.394338 -> 2.00000 1.60566 +DEAL:: 0.00000 0.105662 -> 2.00000 1.89434 +DEAL:: +DEAL::normal vectors +DEAL::1.00000 0.00000 +DEAL::1.00000 0.00000 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: -1.00000 -0.00000 -0.00000 -1.00000 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::MappingP1<2, 3> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 1.00000 3.00000 +DEAL:: 2.00000 1.00000 6.00000 +DEAL:: 1.00000 2.00000 6.00000 +DEAL:: +DEAL::JxW +DEAL:: 0.790569 +DEAL:: 0.790569 +DEAL:: +DEAL::quadrature points +DEAL:: 0.105662 9.02056e-17 -> 1.10566 1.00000 3.31699 +DEAL:: 0.394338 -5.55112e-17 -> 1.39434 1.00000 4.18301 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.790569 +DEAL:: 0.790569 +DEAL:: +DEAL::quadrature points +DEAL:: 0.605662 2.22045e-16 -> 1.60566 1.00000 4.81699 +DEAL:: 0.894338 0.00000 -> 1.89434 1.00000 5.68301 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.353553 +DEAL:: 0.353553 +DEAL:: +DEAL::quadrature points +DEAL:: 0.894338 0.105662 -> 1.89434 1.10566 6.00000 +DEAL:: 0.605662 0.394338 -> 1.60566 1.39434 6.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.353553 +DEAL:: 0.353553 +DEAL:: +DEAL::quadrature points +DEAL:: 0.394338 0.605662 -> 1.39434 1.60566 6.00000 +DEAL:: 0.105662 0.894338 -> 1.10566 1.89434 6.00000 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.790569 +DEAL:: 0.790569 +DEAL:: +DEAL::quadrature points +DEAL:: 0.00000 0.894338 -> 1.00000 1.89434 5.68301 +DEAL:: 2.22045e-16 0.605662 -> 1.00000 1.60566 4.81699 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.790569 +DEAL:: 0.790569 +DEAL:: +DEAL::quadrature points +DEAL:: -5.55112e-17 0.394338 -> 1.00000 1.39434 4.18301 +DEAL:: 9.02056e-17 0.105662 -> 1.00000 1.10566 3.31699 +DEAL:: +DEAL::Jacobians +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: 1.00000 0.00000 0.00000 1.00000 3.00000 3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: 0.526316 -0.473684 0.157895 -0.473684 0.526316 0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 2.00000 9.00000 +DEAL:: 1.00000 2.00000 6.00000 +DEAL:: 2.00000 1.00000 6.00000 +DEAL:: +DEAL::JxW +DEAL:: 0.790569 +DEAL:: 0.790569 +DEAL:: +DEAL::quadrature points +DEAL:: 0.105662 1.59595e-16 -> 1.89434 2.00000 8.68301 +DEAL:: 0.394338 -5.55112e-17 -> 1.60566 2.00000 7.81699 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.790569 +DEAL:: 0.790569 +DEAL:: +DEAL::quadrature points +DEAL:: 0.605662 2.22045e-16 -> 1.39434 2.00000 7.18301 +DEAL:: 0.894338 0.00000 -> 1.10566 2.00000 6.31699 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.353553 +DEAL:: 0.353553 +DEAL:: +DEAL::quadrature points +DEAL:: 0.105662 0.894338 -> 1.89434 1.10566 6.00000 +DEAL:: 0.394338 0.605662 -> 1.60566 1.39434 6.00000 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.353553 +DEAL:: 0.353553 +DEAL:: +DEAL::quadrature points +DEAL:: 0.605662 0.394338 -> 1.39434 1.60566 6.00000 +DEAL:: 0.894338 0.105662 -> 1.10566 1.89434 6.00000 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.790569 +DEAL:: 0.790569 +DEAL:: +DEAL::quadrature points +DEAL:: 0.00000 0.894338 -> 2.00000 1.10566 6.31699 +DEAL:: 2.22045e-16 0.605662 -> 2.00000 1.39434 7.18301 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::JxW +DEAL:: 0.790569 +DEAL:: 0.790569 +DEAL:: +DEAL::quadrature points +DEAL:: -5.55112e-17 0.394338 -> 2.00000 1.60566 7.81699 +DEAL:: 1.59595e-16 0.105662 -> 2.00000 1.89434 8.68301 +DEAL:: +DEAL::Jacobians +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: -1.00000 0.00000 0.00000 -1.00000 -3.00000 -3.00000 +DEAL:: +DEAL::Jacobian gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::inverse jacobians +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: -0.526316 0.473684 -0.157895 0.473684 -0.526316 -0.157895 +DEAL:: +DEAL::Jacobian push forward gradients +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 2nd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL::Jacobian push forward 3rd derivatives +DEAL:: all zero = 1 +DEAL:: all zero = 1 +DEAL:: +DEAL:: +DEAL::OK diff --git a/tests/simplex/mapping_p1_04.cc b/tests/simplex/mapping_p1_04.cc new file mode 100644 index 0000000000..315d588b86 --- /dev/null +++ b/tests/simplex/mapping_p1_04.cc @@ -0,0 +1,168 @@ +// ------------------------------------------------------------------------ +// +// SPDX-License-Identifier: LGPL-2.1-or-later +// Copyright (C) 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. +// +// ------------------------------------------------------------------------ + +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "../tests.h" + + +// Test MappingP1's cell values for FE quantities by comparing with MappingFE. + +using namespace dealii; + +template +void +test() +{ + deallog << "MappingP1<" << dim << ", " << spacedim << ">" << std::endl; + + const auto reference_cell = ReferenceCells::get_simplex(); + + Triangulation tria; + if constexpr (dim == 1) + GridGenerator::subdivided_hyper_cube(tria, 1, 1.0, 2.0, true); + else if constexpr (dim == 2 && spacedim == 3) + { + Triangulation tria_2d; + GridGenerator::subdivided_hyper_cube_with_simplices( + tria_2d, 1, 1.0, 2.0, true); + std::vector> points_2d; + std::vector> cell_data; + SubCellData subcell_data; + std::tie(points_2d, cell_data, subcell_data) = + GridTools::get_coarse_mesh_description(tria_2d); + + std::vector> points_3d; + for (const auto &p : points_2d) + points_3d.emplace_back(p[0], p[1], 1.0 + p[0] * p[0] + p[1] * p[1]); + + tria.create_triangulation(points_3d, cell_data, subcell_data); + } + else + GridGenerator::subdivided_hyper_cube_with_simplices( + tria, 1, 1.0, 2.0, true); + FE_SimplexP fe(3); + MappingP1 mapping; + MappingFE mapping_fe(fe); + + QGaussSimplex quadrature(2); + + UpdateFlags flags = + update_values | update_gradients | update_hessians | update_3rd_derivatives; + + FEValues fe_values(mapping, fe, quadrature, flags); + FEValues fe_values_2(mapping_fe, fe, quadrature, flags); + + for (const auto &cell : tria.active_cell_iterators()) + { + deallog << std::endl; + fe_values.reinit(cell); + fe_values_2.reinit(cell); + + deallog << "cell vertices" << std::endl; + for (const unsigned int vertex_no : cell->vertex_indices()) + deallog << " " << cell->vertex(vertex_no) << std::endl; + deallog << std::endl; + + deallog << "shape_values" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + for (unsigned int i = 0; i < fe.dofs_per_cell; ++i) + { + // here and below, only print out values for a single shape + // function so that the output isn't tens of thousands of lines + // long + if (i == fe.dofs_per_cell / 2) + deallog << " " << fe_values.shape_value(i, qp_n) << std::endl; + Assert(std::abs(fe_values.shape_value(i, qp_n) - + fe_values_2.shape_value(i, qp_n)) < 1e-12, + ExcInternalError()); + } + } + deallog << std::endl; + + deallog << "shape_gradients" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + for (unsigned int i = 0; i < fe.dofs_per_cell; ++i) + { + if (i == fe.dofs_per_cell / 2) + deallog << " " << fe_values.shape_grad(i, qp_n) << std::endl; + Assert((fe_values.shape_grad(i, qp_n) - + fe_values_2.shape_grad(i, qp_n)) + .norm() < 1e-12, + ExcInternalError()); + } + } + deallog << std::endl; + + deallog << "shape_hessians" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + for (unsigned int i = 0; i < fe.dofs_per_cell; ++i) + { + if (i == fe.dofs_per_cell / 2) + deallog << " " << fe_values.shape_hessian(i, qp_n) + << std::endl; + Assert((fe_values.shape_hessian(i, qp_n) - + fe_values_2.shape_hessian(i, qp_n)) + .norm() < 1e-12, + ExcInternalError()); + } + } + deallog << std::endl; + + deallog << "shape_3rd_derivatives" << std::endl; + for (unsigned int qp_n = 0; qp_n < quadrature.size(); ++qp_n) + { + for (unsigned int i = 0; i < fe.dofs_per_cell; ++i) + { + if (i == fe.dofs_per_cell / 2) + deallog << " " << fe_values.shape_3rd_derivative(i, qp_n) + << std::endl; + Assert((fe_values.shape_3rd_derivative(i, qp_n) - + fe_values_2.shape_3rd_derivative(i, qp_n)) + .norm() < 1e-08, + ExcInternalError()); + } + } + deallog << std::endl; + } + + deallog << std::endl; +} + +int +main() +{ + initlog(); + + test<1>(); + test<1, 2>(); + test<2>(); + test<2, 3>(); + test<3>(); + + deallog << "OK" << std::endl; +} diff --git a/tests/simplex/mapping_p1_04.output b/tests/simplex/mapping_p1_04.output new file mode 100644 index 0000000000..46c7bbbb49 --- /dev/null +++ b/tests/simplex/mapping_p1_04.output @@ -0,0 +1,369 @@ + +DEAL::MappingP1<1, 1> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 +DEAL:: 2.00000 +DEAL:: +DEAL::shape_values +DEAL:: 1.02452 +DEAL:: -0.274519 +DEAL:: +DEAL::shape_gradients +DEAL:: 1.29904 +DEAL:: -1.29904 +DEAL:: +DEAL::shape_hessians +DEAL:: -27.8827 +DEAL:: 18.8827 +DEAL:: +DEAL::shape_3rd_derivatives +DEAL:: 81.0000 +DEAL:: 81.0000 +DEAL:: +DEAL:: +DEAL::MappingP1<1, 2> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 0.00000 +DEAL:: 2.00000 0.00000 +DEAL:: +DEAL::shape_values +DEAL:: 1.02452 +DEAL:: -0.274519 +DEAL:: +DEAL::shape_gradients +DEAL:: 1.29904 0.00000 +DEAL:: -1.29904 -0.00000 +DEAL:: +DEAL::shape_hessians +DEAL:: -27.8827 -0.00000 -0.00000 -0.00000 +DEAL:: 18.8827 0.00000 0.00000 0.00000 +DEAL:: +DEAL::shape_3rd_derivatives +DEAL:: 81.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 +DEAL:: 81.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 +DEAL:: +DEAL:: +DEAL::MappingP1<2, 2> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 1.00000 +DEAL:: 2.00000 1.00000 +DEAL:: 1.00000 2.00000 +DEAL:: +DEAL::shape_values +DEAL:: -0.0578481 +DEAL:: -0.168744 +DEAL:: 0.464575 +DEAL:: -0.129982 +DEAL:: +DEAL::shape_gradients +DEAL:: 0.0497847 -0.373091 +DEAL:: -1.59571 -0.261639 +DEAL:: 2.09203 2.99627 +DEAL:: 1.97389 -0.201539 +DEAL:: +DEAL::shape_hessians +DEAL:: 4.18638 0.321086 0.321086 0.00000 +DEAL:: 17.4136 -2.47416 -2.47416 0.00000 +DEAL:: 4.18638 13.4925 13.4925 0.00000 +DEAL:: 17.4136 3.06054 3.06054 0.00000 +DEAL:: +DEAL::shape_3rd_derivatives +DEAL:: 0.00000 27.0000 27.0000 0.00000 27.0000 0.00000 0.00000 0.00000 +DEAL:: 0.00000 27.0000 27.0000 0.00000 27.0000 0.00000 0.00000 0.00000 +DEAL:: 0.00000 27.0000 27.0000 0.00000 27.0000 0.00000 0.00000 0.00000 +DEAL:: 0.00000 27.0000 27.0000 0.00000 27.0000 0.00000 0.00000 0.00000 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 2.00000 +DEAL:: 1.00000 2.00000 +DEAL:: 2.00000 1.00000 +DEAL:: +DEAL::shape_values +DEAL:: -0.0578481 +DEAL:: -0.168744 +DEAL:: 0.464575 +DEAL:: -0.129982 +DEAL:: +DEAL::shape_gradients +DEAL:: -0.0497847 0.373091 +DEAL:: 1.59571 0.261639 +DEAL:: -2.09203 -2.99627 +DEAL:: -1.97389 0.201539 +DEAL:: +DEAL::shape_hessians +DEAL:: 4.18638 0.321086 0.321086 0.00000 +DEAL:: 17.4136 -2.47416 -2.47416 -0.00000 +DEAL:: 4.18638 13.4925 13.4925 0.00000 +DEAL:: 17.4136 3.06054 3.06054 0.00000 +DEAL:: +DEAL::shape_3rd_derivatives +DEAL:: -0.00000 -27.0000 -27.0000 -0.00000 -27.0000 -0.00000 -0.00000 -0.00000 +DEAL:: -0.00000 -27.0000 -27.0000 -0.00000 -27.0000 -0.00000 -0.00000 -0.00000 +DEAL:: -0.00000 -27.0000 -27.0000 -0.00000 -27.0000 -0.00000 -0.00000 -0.00000 +DEAL:: -0.00000 -27.0000 -27.0000 -0.00000 -27.0000 -0.00000 -0.00000 -0.00000 +DEAL:: +DEAL:: +DEAL::MappingP1<2, 3> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 1.00000 3.00000 +DEAL:: 2.00000 1.00000 6.00000 +DEAL:: 1.00000 2.00000 6.00000 +DEAL:: +DEAL::shape_values +DEAL:: -0.0578481 +DEAL:: -0.168744 +DEAL:: 0.464575 +DEAL:: -0.129982 +DEAL:: +DEAL::shape_gradients +DEAL:: 0.202930 -0.219946 -0.0510483 +DEAL:: -0.715911 0.618156 -0.293265 +DEAL:: -0.318216 0.586022 0.803416 +DEAL:: 1.13436 -1.04107 0.279845 +DEAL:: +DEAL::shape_hessians +DEAL:: 0.999563 -0.882708 0.350567 -0.882708 0.779228 -0.310440 0.350567 -0.310440 0.120379 +DEAL:: 6.05737 -5.58185 1.42655 -5.58185 5.14086 -1.32296 1.42655 -1.32296 0.310769 +DEAL:: -5.56792 5.72126 0.460025 5.72126 -5.78825 -0.200982 0.460025 -0.200982 0.777128 +DEAL:: 3.29769 -2.80684 1.47255 -2.80684 2.38118 -1.27697 1.47255 -1.27697 0.586738 +DEAL:: +DEAL::shape_3rd_derivatives +DEAL:: -10.6284 10.3135 -0.944744 10.3135 -9.95524 1.07465 -0.944744 1.07465 0.389707 10.3135 -9.95524 1.07465 -9.95524 9.56553 -1.16912 1.07465 -1.16912 -0.283423 -0.944744 1.07465 0.389707 1.07465 -1.16912 -0.283423 0.389707 -0.283423 0.318851 +DEAL:: -10.6284 10.3135 -0.944744 10.3135 -9.95524 1.07465 -0.944744 1.07465 0.389707 10.3135 -9.95524 1.07465 -9.95524 9.56553 -1.16912 1.07465 -1.16912 -0.283423 -0.944744 1.07465 0.389707 1.07465 -1.16912 -0.283423 0.389707 -0.283423 0.318851 +DEAL:: -10.6284 10.3135 -0.944744 10.3135 -9.95524 1.07465 -0.944744 1.07465 0.389707 10.3135 -9.95524 1.07465 -9.95524 9.56553 -1.16912 1.07465 -1.16912 -0.283423 -0.944744 1.07465 0.389707 1.07465 -1.16912 -0.283423 0.389707 -0.283423 0.318851 +DEAL:: -10.6284 10.3135 -0.944744 10.3135 -9.95524 1.07465 -0.944744 1.07465 0.389707 10.3135 -9.95524 1.07465 -9.95524 9.56553 -1.16912 1.07465 -1.16912 -0.283423 -0.944744 1.07465 0.389707 1.07465 -1.16912 -0.283423 0.389707 -0.283423 0.318851 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 2.00000 9.00000 +DEAL:: 1.00000 2.00000 6.00000 +DEAL:: 2.00000 1.00000 6.00000 +DEAL:: +DEAL::shape_values +DEAL:: -0.0578481 +DEAL:: -0.168744 +DEAL:: 0.464575 +DEAL:: -0.129982 +DEAL:: +DEAL::shape_gradients +DEAL:: -0.202930 0.219946 0.0510483 +DEAL:: 0.715911 -0.618156 0.293265 +DEAL:: 0.318216 -0.586022 -0.803416 +DEAL:: -1.13436 1.04107 -0.279845 +DEAL:: +DEAL::shape_hessians +DEAL:: 0.999563 -0.882708 0.350567 -0.882708 0.779228 -0.310440 0.350567 -0.310440 0.120379 +DEAL:: 6.05737 -5.58185 1.42655 -5.58185 5.14086 -1.32296 1.42655 -1.32296 0.310769 +DEAL:: -5.56792 5.72126 0.460025 5.72126 -5.78825 -0.200982 0.460025 -0.200982 0.777128 +DEAL:: 3.29769 -2.80684 1.47255 -2.80684 2.38118 -1.27697 1.47255 -1.27697 0.586738 +DEAL:: +DEAL::shape_3rd_derivatives +DEAL:: 10.6284 -10.3135 0.944744 -10.3135 9.95524 -1.07465 0.944744 -1.07465 -0.389707 -10.3135 9.95524 -1.07465 9.95524 -9.56553 1.16912 -1.07465 1.16912 0.283423 0.944744 -1.07465 -0.389707 -1.07465 1.16912 0.283423 -0.389707 0.283423 -0.318851 +DEAL:: 10.6284 -10.3135 0.944744 -10.3135 9.95524 -1.07465 0.944744 -1.07465 -0.389707 -10.3135 9.95524 -1.07465 9.95524 -9.56553 1.16912 -1.07465 1.16912 0.283423 0.944744 -1.07465 -0.389707 -1.07465 1.16912 0.283423 -0.389707 0.283423 -0.318851 +DEAL:: 10.6284 -10.3135 0.944744 -10.3135 9.95524 -1.07465 0.944744 -1.07465 -0.389707 -10.3135 9.95524 -1.07465 9.95524 -9.56553 1.16912 -1.07465 1.16912 0.283423 0.944744 -1.07465 -0.389707 -1.07465 1.16912 0.283423 -0.389707 0.283423 -0.318851 +DEAL:: 10.6284 -10.3135 0.944744 -10.3135 9.95524 -1.07465 0.944744 -1.07465 -0.389707 -10.3135 9.95524 -1.07465 9.95524 -9.56553 1.16912 -1.07465 1.16912 0.283423 0.944744 -1.07465 -0.389707 -1.07465 1.16912 0.283423 -0.389707 0.283423 -0.318851 +DEAL:: +DEAL:: +DEAL::MappingP1<3, 3> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 1.00000 1.00000 +DEAL:: 2.00000 1.00000 1.00000 +DEAL:: 1.00000 2.00000 1.00000 +DEAL:: 1.00000 1.00000 2.00000 +DEAL:: +DEAL::shape_values +DEAL:: 0.0339313 +DEAL:: 0.0204525 +DEAL:: 0.226849 +DEAL:: -0.0964507 +DEAL:: -0.0459722 +DEAL:: -0.0514379 +DEAL:: +DEAL::shape_gradients +DEAL:: -0.163032 -0.163032 2.50487 +DEAL:: -1.74798 -1.74798 -1.69150 +DEAL:: -2.64526 -2.64526 -2.01270 +DEAL:: 2.22034 2.22034 2.06928 +DEAL:: 0.147892 0.147892 -0.203450 +DEAL:: 0.0954487 0.0954487 -0.270989 +DEAL:: +DEAL::shape_hessians +DEAL:: 0.343396 0.343396 -12.4752 0.343396 0.343396 -12.4752 -12.4752 -12.4752 -25.2938 +DEAL:: 9.77742 9.77742 4.95043 9.77742 9.77742 4.95043 4.95043 4.95043 0.123440 +DEAL:: 9.68276 9.68276 2.30657 9.68276 9.68276 2.30657 2.30657 2.30657 -5.06962 +DEAL:: 17.2393 17.2393 20.7168 17.2393 17.2393 20.7168 20.7168 20.7168 24.1943 +DEAL:: 3.53287 3.53287 4.66314 3.53287 3.53287 4.66314 4.66314 4.66314 5.79341 +DEAL:: 3.79007 3.79007 4.47003 3.79007 3.79007 4.47003 4.47003 4.47003 5.15000 +DEAL:: +DEAL::shape_3rd_derivatives +DEAL:: 0.00000 0.00000 27.0000 0.00000 0.00000 27.0000 27.0000 27.0000 54.0000 0.00000 0.00000 27.0000 0.00000 0.00000 27.0000 27.0000 27.0000 54.0000 27.0000 27.0000 54.0000 27.0000 27.0000 54.0000 54.0000 54.0000 81.0000 +DEAL:: 0.00000 0.00000 27.0000 0.00000 0.00000 27.0000 27.0000 27.0000 54.0000 0.00000 0.00000 27.0000 0.00000 0.00000 27.0000 27.0000 27.0000 54.0000 27.0000 27.0000 54.0000 27.0000 27.0000 54.0000 54.0000 54.0000 81.0000 +DEAL:: 0.00000 0.00000 27.0000 0.00000 0.00000 27.0000 27.0000 27.0000 54.0000 0.00000 0.00000 27.0000 0.00000 0.00000 27.0000 27.0000 27.0000 54.0000 27.0000 27.0000 54.0000 27.0000 27.0000 54.0000 54.0000 54.0000 81.0000 +DEAL:: 0.00000 0.00000 27.0000 0.00000 0.00000 27.0000 27.0000 27.0000 54.0000 0.00000 0.00000 27.0000 0.00000 0.00000 27.0000 27.0000 27.0000 54.0000 27.0000 27.0000 54.0000 27.0000 27.0000 54.0000 54.0000 54.0000 81.0000 +DEAL:: 0.00000 0.00000 27.0000 0.00000 0.00000 27.0000 27.0000 27.0000 54.0000 0.00000 0.00000 27.0000 0.00000 0.00000 27.0000 27.0000 27.0000 54.0000 27.0000 27.0000 54.0000 27.0000 27.0000 54.0000 54.0000 54.0000 81.0000 +DEAL:: 0.00000 0.00000 27.0000 0.00000 0.00000 27.0000 27.0000 27.0000 54.0000 0.00000 0.00000 27.0000 0.00000 0.00000 27.0000 27.0000 27.0000 54.0000 27.0000 27.0000 54.0000 27.0000 27.0000 54.0000 54.0000 54.0000 81.0000 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 2.00000 1.00000 +DEAL:: 2.00000 1.00000 1.00000 +DEAL:: 2.00000 2.00000 1.00000 +DEAL:: 2.00000 2.00000 2.00000 +DEAL:: +DEAL::shape_values +DEAL:: 0.0339313 +DEAL:: 0.0204525 +DEAL:: 0.226849 +DEAL:: -0.0964507 +DEAL:: -0.0459722 +DEAL:: -0.0514379 +DEAL:: +DEAL::shape_gradients +DEAL:: -0.163032 0.00000 2.66790 +DEAL:: -1.74798 0.00000 0.0564788 +DEAL:: -2.64526 0.00000 0.632559 +DEAL:: 2.22034 0.00000 -0.151060 +DEAL:: 0.147892 0.00000 -0.351342 +DEAL:: 0.0954487 0.00000 -0.366438 +DEAL:: +DEAL::shape_hessians +DEAL:: 0.343396 0.00000 -12.8186 0.00000 0.00000 0.00000 -12.8186 0.00000 0.00000 +DEAL:: 9.77742 0.00000 -4.82699 0.00000 0.00000 0.00000 -4.82699 0.00000 0.00000 +DEAL:: 9.68276 0.00000 -7.37619 0.00000 0.00000 0.00000 -7.37619 0.00000 -1.77636e-15 +DEAL:: 17.2393 0.00000 3.47747 0.00000 0.00000 0.00000 3.47747 0.00000 3.55271e-15 +DEAL:: 3.53287 0.00000 1.13027 0.00000 0.00000 0.00000 1.13027 0.00000 4.44089e-16 +DEAL:: 3.79007 0.00000 0.679966 0.00000 0.00000 0.00000 0.679966 0.00000 8.88178e-16 +DEAL:: +DEAL::shape_3rd_derivatives +DEAL:: 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 +DEAL:: 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 +DEAL:: 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 +DEAL:: 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 +DEAL:: 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 +DEAL:: 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 1.00000 1.00000 +DEAL:: 1.00000 1.00000 2.00000 +DEAL:: 2.00000 1.00000 2.00000 +DEAL:: 2.00000 2.00000 2.00000 +DEAL:: +DEAL::shape_values +DEAL:: 0.0339313 +DEAL:: 0.0204525 +DEAL:: 0.226849 +DEAL:: -0.0964507 +DEAL:: -0.0459722 +DEAL:: -0.0514379 +DEAL:: +DEAL::shape_gradients +DEAL:: 0.00000 2.66790 -0.163032 +DEAL:: 0.00000 0.0564788 -1.74798 +DEAL:: 0.00000 0.632559 -2.64526 +DEAL:: 0.00000 -0.151060 2.22034 +DEAL:: 0.00000 -0.351342 0.147892 +DEAL:: 0.00000 -0.366438 0.0954487 +DEAL:: +DEAL::shape_hessians +DEAL:: 0.00000 0.00000 0.00000 0.00000 0.00000 -12.8186 0.00000 -12.8186 0.343396 +DEAL:: 0.00000 0.00000 0.00000 0.00000 0.00000 -4.82699 0.00000 -4.82699 9.77742 +DEAL:: 0.00000 0.00000 0.00000 0.00000 -1.77636e-15 -7.37619 0.00000 -7.37619 9.68276 +DEAL:: 0.00000 0.00000 0.00000 0.00000 3.55271e-15 3.47747 0.00000 3.47747 17.2393 +DEAL:: 0.00000 0.00000 0.00000 0.00000 4.44089e-16 1.13027 0.00000 1.13027 3.53287 +DEAL:: 0.00000 0.00000 0.00000 0.00000 8.88178e-16 0.679966 0.00000 0.679966 3.79007 +DEAL:: +DEAL::shape_3rd_derivatives +DEAL:: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 27.0000 0.00000 +DEAL:: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 27.0000 0.00000 +DEAL:: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 27.0000 0.00000 +DEAL:: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 27.0000 0.00000 +DEAL:: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 27.0000 0.00000 +DEAL:: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 27.0000 0.00000 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 2.00000 1.00000 +DEAL:: 1.00000 1.00000 2.00000 +DEAL:: 2.00000 2.00000 2.00000 +DEAL:: 1.00000 2.00000 2.00000 +DEAL:: +DEAL::shape_values +DEAL:: 0.0339313 +DEAL:: 0.0204525 +DEAL:: 0.226849 +DEAL:: -0.0964507 +DEAL:: -0.0459722 +DEAL:: -0.0514379 +DEAL:: +DEAL::shape_gradients +DEAL:: -2.66790 2.66790 2.50487 +DEAL:: -0.0564788 0.0564788 -1.69150 +DEAL:: -0.632559 0.632559 -2.01270 +DEAL:: 0.151060 -0.151060 2.06928 +DEAL:: 0.351342 -0.351342 -0.203450 +DEAL:: 0.366438 -0.366438 -0.270989 +DEAL:: +DEAL::shape_hessians +DEAL:: 0.00000 0.00000 12.8186 0.00000 0.00000 -12.8186 12.8186 -12.8186 -25.2938 +DEAL:: 0.00000 0.00000 4.82699 0.00000 0.00000 -4.82699 4.82699 -4.82699 0.123440 +DEAL:: -1.77636e-15 1.77636e-15 7.37619 1.77636e-15 -1.77636e-15 -7.37619 7.37619 -7.37619 -5.06962 +DEAL:: 3.55271e-15 -3.55271e-15 -3.47747 -3.55271e-15 3.55271e-15 3.47747 -3.47747 3.47747 24.1943 +DEAL:: 4.44089e-16 -4.44089e-16 -1.13027 -4.44089e-16 4.44089e-16 1.13027 -1.13027 1.13027 5.79341 +DEAL:: 8.88178e-16 -8.88178e-16 -0.679966 -8.88178e-16 8.88178e-16 0.679966 -0.679966 0.679966 5.15000 +DEAL:: +DEAL::shape_3rd_derivatives +DEAL:: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 -27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 -27.0000 0.00000 0.00000 27.0000 -27.0000 27.0000 81.0000 +DEAL:: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 -27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 -27.0000 0.00000 0.00000 27.0000 -27.0000 27.0000 81.0000 +DEAL:: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 -27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 -27.0000 0.00000 0.00000 27.0000 -27.0000 27.0000 81.0000 +DEAL:: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 -27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 -27.0000 0.00000 0.00000 27.0000 -27.0000 27.0000 81.0000 +DEAL:: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 -27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 -27.0000 0.00000 0.00000 27.0000 -27.0000 27.0000 81.0000 +DEAL:: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 -27.0000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 27.0000 0.00000 0.00000 -27.0000 0.00000 0.00000 27.0000 -27.0000 27.0000 81.0000 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 1.00000 1.00000 +DEAL:: 1.00000 2.00000 1.00000 +DEAL:: 1.00000 1.00000 2.00000 +DEAL:: 2.00000 2.00000 2.00000 +DEAL:: +DEAL::shape_values +DEAL:: 0.0339313 +DEAL:: 0.0204525 +DEAL:: 0.226849 +DEAL:: -0.0964507 +DEAL:: -0.0459722 +DEAL:: -0.0514379 +DEAL:: +DEAL::shape_gradients +DEAL:: 1.41547 1.25243 1.25243 +DEAL:: 0.902231 -0.845752 -0.845752 +DEAL:: 1.63891 -1.00635 -1.00635 +DEAL:: -1.18570 1.03464 1.03464 +DEAL:: -0.249617 -0.101725 -0.101725 +DEAL:: -0.230943 -0.135495 -0.135495 +DEAL:: +DEAL::shape_hessians +DEAL:: 6.49515 -0.0858490 -0.0858490 -0.0858490 -6.32345 -6.32345 -0.0858490 -6.32345 -6.32345 +DEAL:: 4.85785 -2.44436 -2.44436 -2.44436 0.0308600 0.0308600 -2.44436 0.0308600 0.0308600 +DEAL:: 6.10879 -2.42069 -2.42069 -2.42069 -1.26741 -1.26741 -2.42069 -1.26741 -1.26741 +DEAL:: 2.57110 -4.30983 -4.30983 -4.30983 6.04856 6.04856 -4.30983 6.04856 6.04856 +DEAL:: 0.318084 -0.883218 -0.883218 -0.883218 1.44835 1.44835 -0.883218 1.44835 1.44835 +DEAL:: 0.607534 -0.947516 -0.947516 -0.947516 1.28750 1.28750 -0.947516 1.28750 1.28750 +DEAL:: +DEAL::shape_3rd_derivatives +DEAL:: 10.1250 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 10.1250 10.1250 -3.37500 10.1250 10.1250 -3.37500 -3.37500 -3.37500 -3.37500 10.1250 10.1250 -3.37500 10.1250 10.1250 +DEAL:: 10.1250 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 10.1250 10.1250 -3.37500 10.1250 10.1250 -3.37500 -3.37500 -3.37500 -3.37500 10.1250 10.1250 -3.37500 10.1250 10.1250 +DEAL:: 10.1250 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 10.1250 10.1250 -3.37500 10.1250 10.1250 -3.37500 -3.37500 -3.37500 -3.37500 10.1250 10.1250 -3.37500 10.1250 10.1250 +DEAL:: 10.1250 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 10.1250 10.1250 -3.37500 10.1250 10.1250 -3.37500 -3.37500 -3.37500 -3.37500 10.1250 10.1250 -3.37500 10.1250 10.1250 +DEAL:: 10.1250 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 10.1250 10.1250 -3.37500 10.1250 10.1250 -3.37500 -3.37500 -3.37500 -3.37500 10.1250 10.1250 -3.37500 10.1250 10.1250 +DEAL:: 10.1250 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 -3.37500 10.1250 10.1250 -3.37500 10.1250 10.1250 -3.37500 -3.37500 -3.37500 -3.37500 10.1250 10.1250 -3.37500 10.1250 10.1250 +DEAL:: +DEAL:: +DEAL::OK diff --git a/tests/simplex/mapping_p1_05.cc b/tests/simplex/mapping_p1_05.cc new file mode 100644 index 0000000000..84ce0059b4 --- /dev/null +++ b/tests/simplex/mapping_p1_05.cc @@ -0,0 +1,364 @@ +// ------------------------------------------------------------------------ +// +// SPDX-License-Identifier: LGPL-2.1-or-later +// Copyright (C) 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. +// +// ------------------------------------------------------------------------ + +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "../tests.h" + + +// Test MappingP1::transform() by comparing with MappingFE. + + +// To call Mapping::transform() we have to get the mapping data, which requires +// accessing a protected member of FEValuesBase: +template +class FEValues2 : public FEValues +{ +public: + using FEValues::FEValues; + + const typename Mapping::InternalDataBase & + get_mapping_data() const + { + Assert(this->mapping_data, ExcInternalError()); + return *this->mapping_data; + } +}; + +using namespace dealii; + +void +fill_tensor(double &t) +{ + t = random_value(); +} + +template +void +fill_tensor(Tensor &t) +{ + for (unsigned int d = 0; d < dim; ++d) + fill_tensor(t[d]); +} + +template +void +fill_tensor(Tensor<1, dim> &t) +{ + for (unsigned int d = 0; d < dim; ++d) + t[d] = random_value(); +} + +template +void +test() +{ + deallog << "MappingP1<" << dim << ", " << spacedim << ">" << std::endl; + + const auto reference_cell = ReferenceCells::get_simplex(); + + Triangulation tria; + if constexpr (dim == 1) + GridGenerator::subdivided_hyper_cube(tria, 1, 1.0, 2.0, true); + else if constexpr (dim == 2 && spacedim == 3) + { + Triangulation tria_2d; + GridGenerator::subdivided_hyper_cube_with_simplices( + tria_2d, 1, 1.0, 2.0, true); + std::vector> points_2d; + std::vector> cell_data; + SubCellData subcell_data; + std::tie(points_2d, cell_data, subcell_data) = + GridTools::get_coarse_mesh_description(tria_2d); + + std::vector> points_3d; + for (const auto &p : points_2d) + points_3d.emplace_back(p[0], p[1], 1.0 + p[0] * p[0] + p[1] * p[1]); + + tria.create_triangulation(points_3d, cell_data, subcell_data); + } + else + GridGenerator::subdivided_hyper_cube_with_simplices( + tria, 1, 1.0, 2.0, true); + FE_SimplexP fe(3); + MappingP1 mapping; + MappingFE mapping_fe(fe); + + QGaussSimplex quadrature(2); + + UpdateFlags flags = update_values | update_gradients | update_hessians | + update_3rd_derivatives | + update_contravariant_transformation; + + FEValues2 fe_values(mapping, fe, quadrature, flags); + FEValues2 fe_values_2(mapping_fe, fe, quadrature, flags); + + for (const auto &cell : tria.active_cell_iterators()) + { + deallog << std::endl; + + // We need to update the internal states before we can + // compute values with transform(): + fe_values.reinit(cell); + fe_values_2.reinit(cell); + + deallog << "cell vertices" << std::endl; + for (const unsigned int vertex_no : cell->vertex_indices()) + deallog << " " << cell->vertex(vertex_no) << std::endl; + deallog << std::endl; + + // First transform(): + { + std::vector> input(quadrature.size()); + for (auto &v : input) + fill_tensor(v); + auto input_2 = input; + + auto test_mapping = [&](const MappingKind &mapping_kind, + const std::string &mapping_name) { + deallog << "transform Tensor<1, " << spacedim << "> with " + << mapping_name << ":" << std::endl; + + std::vector> output(quadrature.size()); + auto output_2 = output; + + mapping.transform(make_array_view(input), + mapping_kind, + fe_values.get_mapping_data(), + make_array_view(output)); + mapping_fe.transform(make_array_view(input_2), + mapping_kind, + fe_values_2.get_mapping_data(), + make_array_view(output_2)); + + for (unsigned int i = 0; i < input.size(); ++i) + { + Assert((output[i] - output_2[i]).norm() < 1e-12, + ExcInternalError()); + if (i == input.size() / 2) + deallog << output[i] << std::endl; + } + }; + + test_mapping(MappingKind::mapping_covariant, "mapping_covariant"); + test_mapping(MappingKind::mapping_contravariant, + "mapping_contravariant"); + test_mapping(MappingKind::mapping_piola, "mapping_piola"); + } + deallog << std::endl; + + // Second transform(): + { + std::vector> input(quadrature.size()); + for (auto &v : input) + for (unsigned int d = 0; d < spacedim; ++d) + fill_tensor(v[d]); + auto input_2 = input; + + auto test_mapping = [&](const MappingKind &mapping_kind, + const std::string &mapping_name) { + deallog << "transform DerivativeForm<1, " << dim << ", " << spacedim + << "> with " << mapping_name << ":" << std::endl; + + std::vector> output(quadrature.size()); + auto output_2 = output; + + mapping.transform(make_array_view(input), + mapping_kind, + fe_values.get_mapping_data(), + make_array_view(output)); + mapping_fe.transform(make_array_view(input_2), + mapping_kind, + fe_values_2.get_mapping_data(), + make_array_view(output_2)); + + for (unsigned int i = 0; i < input.size(); ++i) + { + Assert((output[i] - output_2[i]).norm() < 1e-12, + ExcInternalError()); + if (i == input.size() / 2) + deallog << output[i] << std::endl; + } + }; + + test_mapping(MappingKind::mapping_covariant, "mapping_covariant"); + // Other mappings are not yet implemented for MappingFE so we do not + // have them in MappingP1 (or tests here) +#if 0 + test_mapping(MappingKind::mapping_contravariant, + "mapping_contravariant"); + test_mapping(MappingKind::mapping_piola, "mapping_piola"); +#endif + } + deallog << std::endl; + + // Third transform(): + // + // these transformations are only implemented for codim 0 + if (dim == spacedim) + { + std::vector> input(quadrature.size()); + for (auto &v : input) + fill_tensor(v); + auto input_2 = input; + + auto test_mapping = [&](const MappingKind &mapping_kind, + const std::string &mapping_name) { + deallog << "transform Tensor<2, " << dim << "> with " + << mapping_name << ":" << std::endl; + + std::vector> output(quadrature.size()); + auto output_2 = output; + + mapping.transform(make_array_view(input), + mapping_kind, + fe_values.get_mapping_data(), + make_array_view(output)); + mapping_fe.transform(make_array_view(input_2), + mapping_kind, + fe_values_2.get_mapping_data(), + make_array_view(output_2)); + + for (unsigned int i = 0; i < input.size(); ++i) + { + Assert((output[i] - output_2[i]).norm() < 1e-12, + ExcInternalError()); + if (i == input.size() / 2) + deallog << output[i] << std::endl; + } + }; + + // not yet implemented by MappingFE +#if 0 + test_mapping(MappingKind::mapping_covariant, "mapping_covariant"); +#endif + test_mapping(MappingKind::mapping_contravariant, + "mapping_contravariant"); + test_mapping(MappingKind::mapping_covariant_gradient, + "mapping_covariant_gradient"); + test_mapping(MappingKind::mapping_contravariant_gradient, + "mapping_contravariant_gradient"); + test_mapping(MappingKind::mapping_piola_gradient, + "mapping_piola_gradient"); + } + deallog << std::endl; + + { + std::vector> input(quadrature.size()); + for (auto &v : input) + for (unsigned int d = 0; d < spacedim; ++d) + fill_tensor(v[d]); + auto input_2 = input; + + auto test_mapping = [&](const MappingKind &mapping_kind, + const std::string &mapping_name) { + deallog << "transform DerivativeForm<2, " << dim << ", " << spacedim + << "> with " << mapping_name << ":" << std::endl; + + std::vector> output(quadrature.size()); + auto output_2 = output; + + mapping.transform(make_array_view(input), + mapping_kind, + fe_values.get_mapping_data(), + make_array_view(output)); + mapping_fe.transform(make_array_view(input_2), + mapping_kind, + fe_values_2.get_mapping_data(), + make_array_view(output_2)); + + for (unsigned int i = 0; i < input.size(); ++i) + { + Assert((output[i] - output_2[i]).norm() < 1e-12, + ExcInternalError()); + if (i == input.size() / 2) + deallog << output[i] << std::endl; + } + }; + + // This is the only mapping implemented for MappingFE + test_mapping(MappingKind::mapping_covariant_gradient, + "mapping_covariant_gradient"); + } + deallog << std::endl; + + { + std::vector> input(quadrature.size()); + for (auto &v : input) + fill_tensor(v); + auto input_2 = input; + + auto test_mapping = [&](const MappingKind &mapping_kind, + const std::string &mapping_name) { + deallog << "transform Tensor<3, " << dim << "> with " << mapping_name + << ":" << std::endl; + + std::vector> output(quadrature.size()); + auto output_2 = output; + + mapping.transform(make_array_view(input), + mapping_kind, + fe_values.get_mapping_data(), + make_array_view(output)); + mapping_fe.transform(make_array_view(input_2), + mapping_kind, + fe_values_2.get_mapping_data(), + make_array_view(output_2)); + + for (unsigned int i = 0; i < input.size(); ++i) + { + Assert((output[i] - output_2[i]).norm() < 1e-12, + ExcInternalError()); + if (i == input.size() / 2) + deallog << output[i] << std::endl; + } + }; + + // This is the only mapping implemented for MappingFE + test_mapping(MappingKind::mapping_contravariant_hessian, + "mapping_contravariant_hessian"); + test_mapping(MappingKind::mapping_covariant_hessian, + "mapping_covariant_hessian"); + test_mapping(MappingKind::mapping_piola_hessian, + "mapping_piola_hessian"); + } + deallog << std::endl; + } + + deallog << std::endl; +} + +int +main() +{ + initlog(); + + test<1>(); + test<1, 2>(); + test<2>(); + test<2, 3>(); + test<3>(); + + deallog << "OK" << std::endl; +} diff --git a/tests/simplex/mapping_p1_05.output b/tests/simplex/mapping_p1_05.output new file mode 100644 index 0000000000..043cbdf454 --- /dev/null +++ b/tests/simplex/mapping_p1_05.output @@ -0,0 +1,376 @@ + +DEAL::MappingP1<1, 1> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 +DEAL:: 2.00000 +DEAL:: +DEAL::transform Tensor<1, 1> with mapping_covariant: +DEAL::0.394383 +DEAL::transform Tensor<1, 1> with mapping_contravariant: +DEAL::0.394383 +DEAL::transform Tensor<1, 1> with mapping_piola: +DEAL::0.394383 +DEAL:: +DEAL::transform DerivativeForm<1, 1, 1> with mapping_covariant: +DEAL::0.798440 +DEAL:: +DEAL::transform Tensor<2, 1> with mapping_contravariant: +DEAL::0.197551 +DEAL::transform Tensor<2, 1> with mapping_covariant_gradient: +DEAL::0.197551 +DEAL::transform Tensor<2, 1> with mapping_contravariant_gradient: +DEAL::0.197551 +DEAL::transform Tensor<2, 1> with mapping_piola_gradient: +DEAL::0.197551 +DEAL:: +DEAL::transform DerivativeForm<2, 1, 1> with mapping_covariant_gradient: +DEAL::0.768230 +DEAL:: +DEAL::transform Tensor<3, 1> with mapping_contravariant_hessian: +DEAL::0.553970 +DEAL::transform Tensor<3, 1> with mapping_covariant_hessian: +DEAL::0.553970 +DEAL::transform Tensor<3, 1> with mapping_piola_hessian: +DEAL::0.553970 +DEAL:: +DEAL:: +DEAL::MappingP1<1, 2> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 0.00000 +DEAL:: 2.00000 0.00000 +DEAL:: +DEAL::transform Tensor<1, 2> with mapping_covariant: +DEAL::0.628871 0.00000 +DEAL::transform Tensor<1, 2> with mapping_contravariant: +DEAL::0.628871 0.00000 +DEAL::transform Tensor<1, 2> with mapping_piola: +DEAL::0.628871 0.00000 +DEAL:: +DEAL::transform DerivativeForm<1, 1, 2> with mapping_covariant: +DEAL::0.952230 0.00000 0.916195 0.00000 +DEAL:: +DEAL:: +DEAL::transform DerivativeForm<2, 1, 2> with mapping_covariant_gradient: +DEAL::0.141603 0.00000 0.00000 0.00000 0.606969 0.00000 0.00000 0.00000 +DEAL:: +DEAL::transform Tensor<3, 1> with mapping_contravariant_hessian: +DEAL::0.242887 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 +DEAL::transform Tensor<3, 1> with mapping_covariant_hessian: +DEAL::0.242887 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 +DEAL::transform Tensor<3, 1> with mapping_piola_hessian: +DEAL::0.242887 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 +DEAL:: +DEAL:: +DEAL::MappingP1<2, 2> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 1.00000 +DEAL:: 2.00000 1.00000 +DEAL:: 1.00000 2.00000 +DEAL:: +DEAL::transform Tensor<1, 2> with mapping_covariant: +DEAL::0.129790 0.108809 +DEAL::transform Tensor<1, 2> with mapping_contravariant: +DEAL::0.129790 0.108809 +DEAL::transform Tensor<1, 2> with mapping_piola: +DEAL::0.129790 0.108809 +DEAL:: +DEAL::transform DerivativeForm<1, 2, 2> with mapping_covariant: +DEAL::0.292517 0.771358 0.526745 0.769914 +DEAL:: +DEAL::transform Tensor<2, 2> with mapping_contravariant: +DEAL::0.890233 0.348893 0.0641713 0.0200230 +DEAL::transform Tensor<2, 2> with mapping_covariant_gradient: +DEAL::0.890233 0.348893 0.0641713 0.0200230 +DEAL::transform Tensor<2, 2> with mapping_contravariant_gradient: +DEAL::0.890233 0.348893 0.0641713 0.0200230 +DEAL::transform Tensor<2, 2> with mapping_piola_gradient: +DEAL::0.890233 0.348893 0.0641713 0.0200230 +DEAL:: +DEAL::transform DerivativeForm<2, 2, 2> with mapping_covariant_gradient: +DEAL::0.639979 0.354049 0.687861 0.165974 0.440105 0.880075 0.829201 0.330337 +DEAL:: +DEAL::transform Tensor<3, 2> with mapping_contravariant_hessian: +DEAL::0.786002 0.307458 0.447034 0.226107 0.187533 0.276235 0.556444 0.416501 +DEAL::transform Tensor<3, 2> with mapping_covariant_hessian: +DEAL::0.786002 0.307458 0.447034 0.226107 0.187533 0.276235 0.556444 0.416501 +DEAL::transform Tensor<3, 2> with mapping_piola_hessian: +DEAL::0.786002 0.307458 0.447034 0.226107 0.187533 0.276235 0.556444 0.416501 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 2.00000 +DEAL:: 1.00000 2.00000 +DEAL:: 2.00000 1.00000 +DEAL:: +DEAL::transform Tensor<1, 2> with mapping_covariant: +DEAL::-0.294160 -0.232262 +DEAL::transform Tensor<1, 2> with mapping_contravariant: +DEAL::-0.294160 -0.232262 +DEAL::transform Tensor<1, 2> with mapping_piola: +DEAL::-0.294160 -0.232262 +DEAL:: +DEAL::transform DerivativeForm<1, 2, 2> with mapping_covariant: +DEAL::-0.0525293 -0.521563 -0.176211 -0.240062 +DEAL:: +DEAL::transform Tensor<2, 2> with mapping_contravariant: +DEAL::-0.461420 -0.819677 -0.573319 -0.755581 +DEAL::transform Tensor<2, 2> with mapping_covariant_gradient: +DEAL::0.461420 0.819677 0.573319 0.755581 +DEAL::transform Tensor<2, 2> with mapping_contravariant_gradient: +DEAL::0.461420 0.819677 0.573319 0.755581 +DEAL::transform Tensor<2, 2> with mapping_piola_gradient: +DEAL::0.461420 0.819677 0.573319 0.755581 +DEAL:: +DEAL::transform DerivativeForm<2, 2, 2> with mapping_covariant_gradient: +DEAL::0.579430 0.452576 0.687387 0.0996401 0.530808 0.757294 0.304295 0.992228 +DEAL:: +DEAL::transform Tensor<3, 2> with mapping_contravariant_hessian: +DEAL::-0.700620 -0.316867 -0.328777 -0.231428 -0.0741610 -0.633072 -0.223656 -0.651132 +DEAL::transform Tensor<3, 2> with mapping_covariant_hessian: +DEAL::-0.700620 -0.316867 -0.328777 -0.231428 -0.0741610 -0.633072 -0.223656 -0.651132 +DEAL::transform Tensor<3, 2> with mapping_piola_hessian: +DEAL::-0.700620 -0.316867 -0.328777 -0.231428 -0.0741610 -0.633072 -0.223656 -0.651132 +DEAL:: +DEAL:: +DEAL::MappingP1<2, 3> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 1.00000 3.00000 +DEAL:: 2.00000 1.00000 6.00000 +DEAL:: 1.00000 2.00000 6.00000 +DEAL:: +DEAL::transform Tensor<1, 3> with mapping_covariant: +DEAL::0.227161 -0.204121 0.0691176 +DEAL::transform Tensor<1, 3> with mapping_contravariant: +DEAL::0.434513 0.00323146 1.31323 +DEAL::transform Tensor<1, 3> with mapping_piola: +DEAL::0.0996842 0.000741348 0.301277 +DEAL:: +DEAL::transform DerivativeForm<1, 2, 3> with mapping_covariant: +DEAL::0.0526633 0.0163670 0.207091 0.0952398 -0.0672536 0.0839587 0.0235072 0.0415593 0.195200 +DEAL:: +DEAL:: +DEAL::transform DerivativeForm<2, 2, 3> with mapping_covariant_gradient: +DEAL::0.00262227 0.0128906 0.0465387 0.00478225 -0.0110389 -0.0187698 0.0222136 0.00555525 0.0833064 -0.0593771 0.0528572 -0.0195595 0.0369649 -0.0250018 0.0358894 -0.0672364 0.0835663 0.0489898 -0.136412 0.161354 0.0748259 0.158493 -0.175333 -0.0505202 0.0662434 -0.0419377 0.0729172 +DEAL:: +DEAL::transform Tensor<3, 2> with mapping_contravariant_hessian: +DEAL::0.0765510 -0.0940676 -0.0525499 -0.0959432 0.118322 0.0671376 -0.0581766 0.0727643 0.0437630 0.0715061 -0.0703671 0.00341720 -0.0590654 0.0667505 0.0230554 0.0373223 -0.0108497 0.0794178 0.444171 -0.493304 -0.147398 -0.465026 0.555219 0.270579 -0.0625630 0.185744 0.369542 +DEAL::transform Tensor<3, 2> with mapping_covariant_hessian: +DEAL::0.00641866 -0.0161775 -0.0292765 -0.0225181 0.0306563 0.0244146 -0.0482983 0.0434363 -0.0145858 0.00137382 0.00752305 0.0266906 0.0143597 -0.0209156 -0.0196676 0.0472007 -0.0401777 0.0210690 0.0233774 -0.0259634 -0.00775780 -0.0244750 0.0292220 0.0142410 -0.00329279 0.00977599 0.0194496 +DEAL::transform Tensor<3, 2> with mapping_piola_hessian: +DEAL::0.0175620 -0.0215806 -0.0120558 -0.0220109 0.0271450 0.0154024 -0.0133466 0.0166933 0.0100399 0.0164046 -0.0161433 0.000783959 -0.0135505 0.0153136 0.00528927 0.00856232 -0.00248909 0.0182197 0.101900 -0.113172 -0.0338155 -0.106684 0.127376 0.0620751 -0.0143529 0.0426125 0.0847788 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 2.00000 9.00000 +DEAL:: 1.00000 2.00000 6.00000 +DEAL:: 2.00000 1.00000 6.00000 +DEAL:: +DEAL::transform Tensor<1, 3> with mapping_covariant: +DEAL::-0.131238 0.108999 -0.0667160 +DEAL::transform Tensor<1, 3> with mapping_contravariant: +DEAL::-0.331386 -0.0911486 -1.26760 +DEAL::transform Tensor<1, 3> with mapping_piola: +DEAL::-0.0760251 -0.0209109 -0.290808 +DEAL:: +DEAL::transform DerivativeForm<1, 2, 3> with mapping_covariant: +DEAL::-0.249994 0.185556 -0.193315 0.0258343 -0.0558522 -0.0900538 -0.0813533 0.00935259 -0.216002 +DEAL:: +DEAL:: +DEAL::transform DerivativeForm<2, 2, 3> with mapping_covariant_gradient: +DEAL::0.183983 -0.170222 0.0412823 -0.187246 0.178591 -0.0259633 -0.00978860 0.0251076 0.0459570 -0.0389647 0.0458142 0.0205486 0.0492430 -0.0503709 -0.00338381 0.0308348 -0.0136700 0.0514944 -0.217988 0.234920 0.0507959 0.213229 -0.225065 -0.0355099 -0.0142786 0.0295646 0.0458580 +DEAL:: +DEAL::transform Tensor<3, 2> with mapping_contravariant_hessian: +DEAL::0.171381 -0.155668 0.0471369 -0.161334 0.139290 -0.0661346 0.0301384 -0.0491361 -0.0569932 0.0258343 -0.0238077 0.00607977 -0.0193061 0.0135366 -0.0173086 0.0195844 -0.0308133 -0.0336866 0.591645 -0.538428 0.159650 -0.541922 0.458479 -0.250330 0.149169 -0.239848 -0.272039 +DEAL::transform Tensor<3, 2> with mapping_covariant_hessian: +DEAL::0.0779630 -0.0706534 0.0219290 -0.0757679 0.0668982 -0.0266089 0.00658547 -0.0112653 -0.0140396 -0.0675833 0.0612073 -0.0191281 0.0662605 -0.0588548 0.0222171 -0.00396848 0.00705748 0.00926701 0.0311392 -0.0283383 0.00840263 -0.0285222 0.0241305 -0.0131753 0.00785098 -0.0126236 -0.0143179 +DEAL::transform Tensor<3, 2> with mapping_piola_hessian: +DEAL::0.0393174 -0.0357128 0.0108139 -0.0370127 0.0319552 -0.0151723 0.00691422 -0.0112726 -0.0130751 0.00592679 -0.00546186 0.00139480 -0.00442913 0.00310551 -0.00397087 0.00449298 -0.00706906 -0.00772823 0.135733 -0.123524 0.0366262 -0.124325 0.105182 -0.0574296 0.0342216 -0.0550250 -0.0624101 +DEAL:: +DEAL:: +DEAL::MappingP1<3, 3> +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 1.00000 1.00000 +DEAL:: 2.00000 1.00000 1.00000 +DEAL:: 1.00000 2.00000 1.00000 +DEAL:: 1.00000 1.00000 2.00000 +DEAL:: +DEAL::transform Tensor<1, 3> with mapping_covariant: +DEAL::0.311950 0.645889 0.00600477 +DEAL::transform Tensor<1, 3> with mapping_contravariant: +DEAL::0.311950 0.645889 0.00600477 +DEAL::transform Tensor<1, 3> with mapping_piola: +DEAL::0.311950 0.645889 0.00600477 +DEAL:: +DEAL::transform DerivativeForm<1, 3, 3> with mapping_covariant: +DEAL::0.503461 0.828957 0.675654 0.904170 0.191112 0.394521 0.706067 0.868924 0.547397 +DEAL:: +DEAL::transform Tensor<2, 3> with mapping_contravariant: +DEAL::0.0484997 0.814351 0.384658 0.637656 0.452122 0.143982 0.413078 0.247033 0.406767 +DEAL::transform Tensor<2, 3> with mapping_covariant_gradient: +DEAL::0.0484997 0.814351 0.384658 0.637656 0.452122 0.143982 0.413078 0.247033 0.406767 +DEAL::transform Tensor<2, 3> with mapping_contravariant_gradient: +DEAL::0.0484997 0.814351 0.384658 0.637656 0.452122 0.143982 0.413078 0.247033 0.406767 +DEAL::transform Tensor<2, 3> with mapping_piola_gradient: +DEAL::0.0484997 0.814351 0.384658 0.637656 0.452122 0.143982 0.413078 0.247033 0.406767 +DEAL:: +DEAL::transform DerivativeForm<2, 3, 3> with mapping_covariant_gradient: +DEAL::0.227552 0.946925 0.0138663 0.160824 0.119989 0.461848 0.648545 0.915221 0.100857 0.614227 0.0705570 0.393746 0.496431 0.436585 0.293177 0.244069 0.912391 0.566164 0.190709 0.0347164 0.431844 0.813904 0.753383 0.356383 0.997970 0.0356664 0.523548 +DEAL:: +DEAL::transform Tensor<3, 3> with mapping_contravariant_hessian: +DEAL::0.129976 0.0812650 0.377997 0.136956 0.659878 0.114459 0.880683 0.582450 0.210863 0.668326 0.528885 0.312343 0.943222 0.768206 0.122086 0.0382648 0.514936 0.399300 0.211565 0.452650 0.160162 0.308247 0.433758 0.00543489 0.649787 0.126222 0.461949 +DEAL::transform Tensor<3, 3> with mapping_covariant_hessian: +DEAL::0.129976 0.0812650 0.377997 0.136956 0.659878 0.114459 0.880683 0.582450 0.210863 0.668326 0.528885 0.312343 0.943222 0.768206 0.122086 0.0382648 0.514936 0.399300 0.211565 0.452650 0.160162 0.308247 0.433758 0.00543489 0.649787 0.126222 0.461949 +DEAL::transform Tensor<3, 3> with mapping_piola_hessian: +DEAL::0.129976 0.0812650 0.377997 0.136956 0.659878 0.114459 0.880683 0.582450 0.210863 0.668326 0.528885 0.312343 0.943222 0.768206 0.122086 0.0382648 0.514936 0.399300 0.211565 0.452650 0.160162 0.308247 0.433758 0.00543489 0.649787 0.126222 0.461949 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 2.00000 1.00000 +DEAL:: 2.00000 1.00000 1.00000 +DEAL:: 2.00000 2.00000 1.00000 +DEAL:: 2.00000 2.00000 2.00000 +DEAL:: +DEAL::transform Tensor<1, 3> with mapping_covariant: +DEAL::0.142119 -0.794231 0.152483 +DEAL::transform Tensor<1, 3> with mapping_contravariant: +DEAL::1.37307 -0.936349 0.294601 +DEAL::transform Tensor<1, 3> with mapping_piola: +DEAL::1.37307 -0.936349 0.294601 +DEAL:: +DEAL::transform DerivativeForm<1, 3, 3> with mapping_covariant: +DEAL::0.599644 0.327455 -0.531410 0.432199 -0.469350 0.449033 0.460652 -0.214198 0.0109871 +DEAL:: +DEAL::transform Tensor<2, 3> with mapping_contravariant: +DEAL::1.00705 -0.460067 0.00584319 1.15368 -0.268684 0.693370 1.33354 -0.444097 0.653087 +DEAL::transform Tensor<2, 3> with mapping_covariant_gradient: +DEAL::0.191630 -0.0770539 0.501740 -0.349509 -0.158126 1.03704 0.0447295 -0.130684 -0.0850131 +DEAL::transform Tensor<2, 3> with mapping_contravariant_gradient: +DEAL::0.969130 -0.203719 0.383170 -0.541140 -0.0810721 0.535296 0.236360 -0.207738 0.416727 +DEAL::transform Tensor<2, 3> with mapping_piola_gradient: +DEAL::0.969130 -0.203719 0.383170 -0.541140 -0.0810721 0.535296 0.236360 -0.207738 0.416727 +DEAL:: +DEAL::transform DerivativeForm<2, 3, 3> with mapping_covariant_gradient: +DEAL::0.889511 0.191415 -0.877830 0.508799 0.540404 -0.504072 -0.712811 -0.901059 1.34033 0.275884 -0.594169 0.271839 -0.649495 -1.37132 0.521523 0.552738 1.26759 -0.877482 0.461250 -0.0845347 0.395576 0.00856861 -0.424305 -0.0125271 -0.0745805 -0.438308 0.173866 +DEAL:: +DEAL::transform Tensor<3, 3> with mapping_contravariant_hessian: +DEAL::1.20258 -0.498151 0.458070 0.234632 -0.925455 1.20947 0.819576 1.46319 -0.809469 -0.478869 0.168679 -0.234331 -0.211786 0.404109 -0.466375 0.211735 0.151384 0.0667253 0.0604589 -0.524539 0.0221181 -0.0672838 -0.457334 0.0487371 0.708616 1.15132 0.198349 +DEAL::transform Tensor<3, 3> with mapping_covariant_hessian: +DEAL::0.663252 0.195067 0.201622 0.0901297 -0.0640118 0.694359 0.322695 0.463253 -0.941092 0.184382 0.363746 -0.0327093 -0.121656 0.340097 0.227984 0.534430 0.614637 -0.874367 -0.602793 -0.719606 -0.179503 -0.157414 -0.393322 -0.645622 0.385921 0.688071 1.13944 +DEAL::transform Tensor<3, 3> with mapping_piola_hessian: +DEAL::1.20258 -0.498151 0.458070 0.234632 -0.925455 1.20947 0.819576 1.46319 -0.809469 -0.478869 0.168679 -0.234331 -0.211786 0.404109 -0.466375 0.211735 0.151384 0.0667253 0.0604589 -0.524539 0.0221181 -0.0672838 -0.457334 0.0487371 0.708616 1.15132 0.198349 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 1.00000 1.00000 +DEAL:: 1.00000 1.00000 2.00000 +DEAL:: 2.00000 1.00000 2.00000 +DEAL:: 2.00000 2.00000 2.00000 +DEAL:: +DEAL::transform Tensor<1, 3> with mapping_covariant: +DEAL::-0.201739 -0.288793 0.538055 +DEAL::transform Tensor<1, 3> with mapping_contravariant: +DEAL::-0.739794 0.249262 1.52711 +DEAL::transform Tensor<1, 3> with mapping_piola: +DEAL::-0.739794 0.249262 1.52711 +DEAL:: +DEAL::transform DerivativeForm<1, 3, 3> with mapping_covariant: +DEAL::-0.755795 0.503068 0.0365160 0.100272 -0.408905 0.429613 0.149429 0.385547 0.563161 +DEAL:: +DEAL::transform Tensor<2, 3> with mapping_contravariant: +DEAL::-0.519048 0.722377 1.85468 -0.993110 0.527017 1.99397 -0.501480 0.123969 0.734536 +DEAL::transform Tensor<2, 3> with mapping_covariant_gradient: +DEAL::-0.613476 -0.0559461 -0.139413 0.126877 -0.0382939 -0.364754 -0.519269 0.0531764 0.473841 +DEAL::transform Tensor<2, 3> with mapping_contravariant_gradient: +DEAL::-0.0942063 -0.109123 -0.613254 -0.392393 0.0148825 0.109087 -0.817456 0.177181 1.19618 +DEAL::transform Tensor<2, 3> with mapping_piola_gradient: +DEAL::-0.0942063 -0.109123 -0.613254 -0.392393 0.0148825 0.109087 -0.817456 0.177181 1.19618 +DEAL:: +DEAL::transform DerivativeForm<2, 3, 3> with mapping_covariant_gradient: +DEAL::0.708186 -0.463812 0.678878 -0.290548 -0.00385977 -0.0553032 0.263845 -0.617082 0.843894 0.279304 0.126941 0.0520103 0.796179 -1.21941 0.845005 -0.315036 0.736193 0.0988576 0.626390 -0.591605 -0.0904713 -0.163415 0.227708 -0.271097 0.361253 -0.402947 0.483742 +DEAL:: +DEAL::transform Tensor<3, 3> with mapping_contravariant_hessian: +DEAL::0.510503 -0.751498 0.00294762 0.373528 -0.0630112 0.0180202 -0.287593 0.0866658 -0.927706 0.174945 0.228774 -0.388907 -0.0141391 -0.292582 0.587891 0.225515 0.211570 0.339732 -0.859328 1.10637 -0.487316 0.305308 -0.105013 0.792600 -0.125698 0.196409 1.31618 +DEAL::transform Tensor<3, 3> with mapping_covariant_hessian: +DEAL::-0.0132674 -0.625403 -0.0925139 1.06650 0.0615460 0.240750 -0.926400 0.158170 -0.878967 0.698715 0.102679 -0.293445 -0.707114 -0.417139 0.365162 0.864322 0.140066 0.290993 -0.523770 0.126095 -0.0954615 0.692975 0.124557 0.222729 -0.638807 0.0715042 0.0487385 +DEAL::transform Tensor<3, 3> with mapping_piola_hessian: +DEAL::0.510503 -0.751498 0.00294762 0.373528 -0.0630112 0.0180202 -0.287593 0.0866658 -0.927706 0.174945 0.228774 -0.388907 -0.0141391 -0.292582 0.587891 0.225515 0.211570 0.339732 -0.859328 1.10637 -0.487316 0.305308 -0.105013 0.792600 -0.125698 0.196409 1.31618 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 1.00000 2.00000 1.00000 +DEAL:: 1.00000 1.00000 2.00000 +DEAL:: 2.00000 2.00000 2.00000 +DEAL:: 1.00000 2.00000 2.00000 +DEAL:: +DEAL::transform Tensor<1, 3> with mapping_covariant: +DEAL::0.689174 -0.345145 0.129542 +DEAL::transform Tensor<1, 3> with mapping_contravariant: +DEAL::0.818716 -0.474687 1.42295 +DEAL::transform Tensor<1, 3> with mapping_piola: +DEAL::0.818716 -0.474687 1.42295 +DEAL:: +DEAL::transform DerivativeForm<1, 3, 3> with mapping_covariant: +DEAL::-0.117110 -0.174875 0.518436 -0.186362 0.392333 0.776374 0.0790493 -0.506194 0.326868 +DEAL:: +DEAL::transform Tensor<2, 3> with mapping_contravariant: +DEAL::0.565959 -0.158316 0.894023 0.971047 -0.425894 1.64463 0.132400 -0.543165 0.694498 +DEAL::transform Tensor<2, 3> with mapping_covariant_gradient: +DEAL::0.609895 0.346023 0.228752 -0.282743 -0.535664 -0.150815 0.113467 -0.524232 0.0189329 +DEAL::transform Tensor<2, 3> with mapping_contravariant_gradient: +DEAL::0.723362 -0.178209 0.247685 -0.396211 -0.0114324 -0.169748 1.23304 -0.691009 0.436366 +DEAL::transform Tensor<2, 3> with mapping_piola_gradient: +DEAL::0.723362 -0.178209 0.247685 -0.396211 -0.0114324 -0.169748 1.23304 -0.691009 0.436366 +DEAL:: +DEAL::transform DerivativeForm<2, 3, 3> with mapping_covariant_gradient: +DEAL::0.750328 -0.830659 -0.645453 0.0377798 0.314893 0.0955697 -0.684099 0.318815 0.883299 0.673094 -0.945303 -0.192734 -0.498593 1.00664 0.427445 -0.503149 0.457608 0.551681 -0.939741 -0.581062 0.112035 0.319098 0.447242 -0.0649697 0.407552 0.490195 0.572763 +DEAL:: +DEAL::transform Tensor<3, 3> with mapping_contravariant_hessian: +DEAL::-0.878496 0.964399 0.470082 0.0992492 0.538159 0.219427 0.658270 -0.179485 0.316945 0.395950 -0.0233784 -0.285767 0.345599 -0.685760 0.0181557 -0.237005 -0.265367 -0.280851 -0.857045 0.0640299 0.198368 0.434100 1.10683 -0.0797541 0.752795 0.162933 1.30432 +DEAL::transform Tensor<3, 3> with mapping_covariant_hessian: +DEAL::-1.29590 1.88815 1.02756 -0.581201 0.655244 0.500452 0.800751 -0.256537 -0.389577 0.813352 -0.947126 -0.843248 1.02605 -0.802845 -0.262869 -0.379485 -0.188315 0.425671 0.417402 -0.923748 -0.557481 0.680450 -0.117085 -0.281025 -0.142480 0.0770515 0.706522 +DEAL::transform Tensor<3, 3> with mapping_piola_hessian: +DEAL::-0.878496 0.964399 0.470082 0.0992492 0.538159 0.219427 0.658270 -0.179485 0.316945 0.395950 -0.0233784 -0.285767 0.345599 -0.685760 0.0181557 -0.237005 -0.265367 -0.280851 -0.857045 0.0640299 0.198368 0.434100 1.10683 -0.0797541 0.752795 0.162933 1.30432 +DEAL:: +DEAL:: +DEAL::cell vertices +DEAL:: 2.00000 1.00000 1.00000 +DEAL:: 1.00000 2.00000 1.00000 +DEAL:: 1.00000 1.00000 2.00000 +DEAL:: 2.00000 2.00000 2.00000 +DEAL:: +DEAL::transform Tensor<1, 3> with mapping_covariant: +DEAL::-0.138167 0.210714 0.632515 +DEAL::transform Tensor<1, 3> with mapping_contravariant: +DEAL::-1.11956 1.19211 1.61391 +DEAL::transform Tensor<1, 3> with mapping_piola: +DEAL::-0.559782 0.596056 0.806956 +DEAL:: +DEAL::transform DerivativeForm<1, 3, 3> with mapping_covariant: +DEAL::-0.260762 0.591629 0.297525 -0.513961 -0.116214 0.257420 0.0158942 0.445645 0.265161 +DEAL:: +DEAL::transform Tensor<2, 3> with mapping_contravariant: +DEAL::-1.17591 1.17360 1.50907 -1.67814 1.30168 1.18473 -0.853347 1.32694 1.34097 +DEAL::transform Tensor<2, 3> with mapping_covariant_gradient: +DEAL::0.437617 -0.0114326 -0.113683 0.226351 0.197520 0.430744 -0.199383 0.249108 0.0299119 +DEAL::transform Tensor<2, 3> with mapping_contravariant_gradient: +DEAL::0.848266 -0.469493 -0.688022 -0.184298 0.655580 1.00508 -0.610031 0.707169 0.604251 +DEAL::transform Tensor<2, 3> with mapping_piola_gradient: +DEAL::0.424133 -0.234747 -0.344011 -0.0921488 0.327790 0.502541 -0.305016 0.353584 0.302125 +DEAL:: +DEAL::transform DerivativeForm<2, 3, 3> with mapping_covariant_gradient: +DEAL::0.237939 -0.0862134 -0.0840394 0.0247836 0.178493 -0.274922 -0.0274792 0.103165 0.577786 0.296266 0.0721105 -0.200318 -0.199723 0.230421 0.195743 -0.241162 0.224749 0.107578 -0.164602 -0.238117 -0.520660 -0.120001 0.336527 -0.410995 -0.189660 -0.00922999 0.158203 +DEAL:: +DEAL::transform Tensor<3, 3> with mapping_contravariant_hessian: +DEAL::-0.426893 0.561782 0.291059 -0.146023 -0.310761 -0.526594 0.432111 -0.0482769 0.234212 0.0128203 -0.534156 -0.0947411 -0.127332 0.175298 0.467218 -0.313362 0.219626 0.213252 -0.212251 -0.825377 -0.389515 -0.411318 0.0137232 0.149544 -0.312396 0.294629 0.0206458 +DEAL::transform Tensor<3, 3> with mapping_covariant_hessian: +DEAL::-0.370027 0.0814534 0.0972304 -0.244180 -0.185816 -0.240755 0.167643 0.0923559 0.234134 -0.0440452 -0.0538272 0.0990877 -0.0291750 0.0503523 0.181379 -0.0488949 0.0789929 0.213331 -0.269117 -0.345048 -0.195686 -0.313162 -0.111222 -0.136295 -0.0479291 0.153996 0.0207243 +DEAL::transform Tensor<3, 3> with mapping_piola_hessian: +DEAL::-0.213447 0.280891 0.145530 -0.0730117 -0.155381 -0.263297 0.216055 -0.0241384 0.117106 0.00641017 -0.267078 -0.0473706 -0.0636659 0.0876490 0.233609 -0.156681 0.109813 0.106626 -0.106126 -0.412688 -0.194757 -0.205659 0.00686162 0.0747721 -0.156198 0.147314 0.0103229 +DEAL:: +DEAL:: +DEAL::OK -- 2.39.5