From: Luca Heltai Date: Thu, 3 Mar 2016 19:54:17 +0000 (+0100) Subject: Fixed Jacobian for FlatManifold. X-Git-Tag: v8.5.0-rc1~1131^2~17 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=44ddb1a8e3cc82104e0b70fc9f6a081457dda1f9;p=dealii.git Fixed Jacobian for FlatManifold. --- diff --git a/tests/fe/mapping_manifold_03.cc b/tests/fe/mapping_manifold_03.cc index b37b4e7d48..8d91e0703a 100644 --- a/tests/fe/mapping_manifold_03.cc +++ b/tests/fe/mapping_manifold_03.cc @@ -13,9 +13,8 @@ // // --------------------------------------------------------------------- - -// Check that the quadrature points obtained through transform_unit_to_real -// are the same of those given by FEValues +// Check that the Jacobian obtained through MappingManifold and +// MappingQ1 are the same on a FlatManifold, on trivial meshes #include "../tests.h" diff --git a/tests/fe/mapping_manifold_04.cc b/tests/fe/mapping_manifold_04.cc new file mode 100644 index 0000000000..adfd3d9ee9 --- /dev/null +++ b/tests/fe/mapping_manifold_04.cc @@ -0,0 +1,112 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2016 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + + +// Check that the Jacobian obtained through MappingManifold and +// MappingQ1 are the same on a FlatManifold, with non-trivial cells + + +#include "../tests.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +template +void test() +{ + deallog << "dim=" << dim << ", spacedim=" << spacedim << std::endl; + + Triangulation triangulation; + + Point center; + for (unsigned int i=0; i quad(3); + + FE_Q fe(1); + + DoFHandler dof(triangulation); + dof.distribute_dofs(fe); + + MappingManifold mapping_manifold; + MappingQGeneric mapping_q(1); + + FEValues fe_values_mapping (mapping_manifold, + fe, quad, + update_jacobians); + + FEValues fe_values_q (mapping_q, + fe, quad, + update_jacobians); + + typename Triangulation::active_cell_iterator cell= triangulation.begin_active(); + + fe_values_mapping.reinit(cell); + fe_values_q.reinit(cell); + std::vector > jac_from_mapping_manifold = fe_values_mapping.get_jacobians(); + + std::vector > jac_from_mapping_q = fe_values_q.get_jacobians(); + + AssertThrow(jac_from_mapping_q.size() == jac_from_mapping_manifold.size(), ExcInternalError()); + + for (unsigned int q=0; q 1e-10) + { + deallog << "Jacobian from mapping manifold at point "<< q << std::endl; + for (unsigned int d=0; d(); + test<3,3>(); + + return 0; +} + + + diff --git a/tests/fe/mapping_manifold_04.output b/tests/fe/mapping_manifold_04.output new file mode 100644 index 0000000000..2aae953332 --- /dev/null +++ b/tests/fe/mapping_manifold_04.output @@ -0,0 +1,5 @@ + +DEAL::dim=2, spacedim=2 +DEAL::OK +DEAL::dim=3, spacedim=3 +DEAL::OK