From: Matthias Maier Date: Fri, 1 Sep 2017 02:26:34 +0000 (-0500) Subject: add a test X-Git-Tag: v9.0.0-rc1~1131^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e9bb6493102aded78e2e6ed8891861be06e4619b;p=dealii.git add a test --- diff --git a/tests/fe/interpolate_system_2.cc b/tests/fe/interpolate_system_2.cc new file mode 100644 index 0000000000..f9eae57e62 --- /dev/null +++ b/tests/fe/interpolate_system_2.cc @@ -0,0 +1,59 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2017 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + + +#include "interpolate_common.h" +#include + +#include +#include +#include + + +// +// Check convert_generalized_support_opint_values_to_dof_values for systems +// of non-Lagrangian elements. +// + +template +void check(T function, const unsigned int degree) +{ + auto fe = FESystem(FE_RaviartThomas(degree), + 2, + FESystem(FE_RaviartThomas(degree), 2), + 1); + deallog << fe.get_name() << std::endl; + + std::vector dofs(fe.dofs_per_cell); + + std::vector> values(fe.get_generalized_support_points().size(), + Vector(4 * dim)); + function.vector_value_list(fe.get_generalized_support_points(), values); + + fe.convert_generalized_support_point_values_to_dof_values(values, dofs); + deallog << " vector " << vector_difference(fe, dofs, function, 0) << std::endl; +} + +int main() +{ + initlog(); + + check<2>(Q1WedgeFunction<2, 1, 4 * 2>(), 1); + check<2>(Q1WedgeFunction<2, 2, 4 * 2>(), 2); + check<2>(Q1WedgeFunction<2, 3, 4 * 2>(), 3); + check<3>(Q1WedgeFunction<3, 1, 4 * 3>(), 1); + check<3>(Q1WedgeFunction<3, 2, 4 * 3>(), 2); + check<3>(Q1WedgeFunction<3, 3, 4 * 3>(), 3); +} diff --git a/tests/fe/interpolate_system_2.output b/tests/fe/interpolate_system_2.output new file mode 100644 index 0000000000..27edc81d45 --- /dev/null +++ b/tests/fe/interpolate_system_2.output @@ -0,0 +1,13 @@ + +DEAL::FESystem<2>[FE_RaviartThomas<2>(1)^2-FESystem<2>[FE_RaviartThomas<2>(1)^2]] +DEAL:: vector 1.66533e-16 +DEAL::FESystem<2>[FE_RaviartThomas<2>(2)^2-FESystem<2>[FE_RaviartThomas<2>(2)^2]] +DEAL:: vector 2.39392e-16 +DEAL::FESystem<2>[FE_RaviartThomas<2>(3)^2-FESystem<2>[FE_RaviartThomas<2>(3)^2]] +DEAL:: vector 1.87784e-16 +DEAL::FESystem<3>[FE_RaviartThomas<3>(1)^2-FESystem<3>[FE_RaviartThomas<3>(1)^2]] +DEAL:: vector 1.59595e-16 +DEAL::FESystem<3>[FE_RaviartThomas<3>(2)^2-FESystem<3>[FE_RaviartThomas<3>(2)^2]] +DEAL:: vector 5.22585e-16 +DEAL::FESystem<3>[FE_RaviartThomas<3>(3)^2-FESystem<3>[FE_RaviartThomas<3>(3)^2]] +DEAL:: vector 3.52637e-16