From: Martin Kronbichler Date: Sat, 28 Oct 2017 16:01:16 +0000 (+0200) Subject: Add test. X-Git-Tag: v9.0.0-rc1~857^2~1 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=74a15728c662f18b81cd7d3124462c32249c5f84;p=dealii.git Add test. --- diff --git a/tests/matrix_free/fe_evaluation_dofs_per_cell.cc b/tests/matrix_free/fe_evaluation_dofs_per_cell.cc new file mode 100644 index 0000000000..274ca992c2 --- /dev/null +++ b/tests/matrix_free/fe_evaluation_dofs_per_cell.cc @@ -0,0 +1,93 @@ +// --------------------------------------------------------------------- +// +// 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. +// +// --------------------------------------------------------------------- + + + +// Test the basic member variables of FEEvaluation + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include + + +template +void print_info(const FEEval &eval) +{ + deallog << "FEEvaluation::dimension: " << FEEval::dimension << std::endl; + deallog << "FEEvaluation::n_components: " << FEEval::n_components << std::endl; + deallog << "FEEvaluation::static_n_q_points: " << FEEval::static_n_q_points << std::endl; + deallog << "FEEvaluation::static_dofs_per_component: " << FEEval::static_dofs_per_component << std::endl; + deallog << "FEEvaluation::tensor_dofs_per_cell: " << FEEval::tensor_dofs_per_cell << std::endl; + deallog << "FEEvaluation::static_dofs_per_cell: " << FEEval::static_dofs_per_cell << std::endl; + deallog << "FEEvaluation::dofs_per_component: " << eval.dofs_per_component << std::endl; + deallog << "FEEvaluation::dofs_per_cell: " << eval.dofs_per_cell << std::endl; + deallog << "FEEvaluation::n_q_points: " << eval.n_q_points << std::endl; +} + + + +template +void test() +{ + const unsigned int degree = 1; + FESystem fe1(FE_Q(degree+1), dim); + FESystem fe2(FE_Q(degree+1), 1); + FESystem fe3(FE_DGP(degree+1), 2); + FESystem fe4(FE_Q(degree), 1); + std::vector *> fes {&fe1, &fe2, &fe3, &fe4}; + + Triangulation tria; + GridGenerator::hyper_cube(tria); + DoFHandler dof(tria); + for (unsigned int i=0; iget_name() << std::endl; + dof.distribute_dofs(*fes[i]); + MatrixFree matrix_free; + matrix_free.reinit(dof, ConstraintMatrix(), QGauss<1>(degree+3), + typename MatrixFree::AdditionalData()); + if (i<2) + { + FEEvaluation phi(matrix_free); + print_info(phi); + } + if (i!=2) + { + FEEvaluation phi(matrix_free); + print_info(phi); + } + if (i==2) + { + FEEvaluation phi(matrix_free); + print_info(phi); + } + } +} + + + +int main () +{ + initlog(); + test<1>(); + test<2>(); + test<3>(); +} diff --git a/tests/matrix_free/fe_evaluation_dofs_per_cell.output b/tests/matrix_free/fe_evaluation_dofs_per_cell.output new file mode 100644 index 0000000000..81c2aa6431 --- /dev/null +++ b/tests/matrix_free/fe_evaluation_dofs_per_cell.output @@ -0,0 +1,175 @@ + +DEAL::Checking FESystem<1>[FE_Q<1>(2)] +DEAL::FEEvaluation::dimension: 1 +DEAL::FEEvaluation::n_components: 1 +DEAL::FEEvaluation::static_n_q_points: 4 +DEAL::FEEvaluation::static_dofs_per_component: 3 +DEAL::FEEvaluation::tensor_dofs_per_cell: 3 +DEAL::FEEvaluation::static_dofs_per_cell: 3 +DEAL::FEEvaluation::dofs_per_component: 3 +DEAL::FEEvaluation::dofs_per_cell: 3 +DEAL::FEEvaluation::n_q_points: 4 +DEAL::FEEvaluation::dimension: 1 +DEAL::FEEvaluation::n_components: 1 +DEAL::FEEvaluation::static_n_q_points: 0 +DEAL::FEEvaluation::static_dofs_per_component: 0 +DEAL::FEEvaluation::tensor_dofs_per_cell: 0 +DEAL::FEEvaluation::static_dofs_per_cell: 0 +DEAL::FEEvaluation::dofs_per_component: 3 +DEAL::FEEvaluation::dofs_per_cell: 3 +DEAL::FEEvaluation::n_q_points: 4 +DEAL::Checking FESystem<1>[FE_Q<1>(2)] +DEAL::FEEvaluation::dimension: 1 +DEAL::FEEvaluation::n_components: 1 +DEAL::FEEvaluation::static_n_q_points: 4 +DEAL::FEEvaluation::static_dofs_per_component: 3 +DEAL::FEEvaluation::tensor_dofs_per_cell: 3 +DEAL::FEEvaluation::static_dofs_per_cell: 3 +DEAL::FEEvaluation::dofs_per_component: 3 +DEAL::FEEvaluation::dofs_per_cell: 3 +DEAL::FEEvaluation::n_q_points: 4 +DEAL::FEEvaluation::dimension: 1 +DEAL::FEEvaluation::n_components: 1 +DEAL::FEEvaluation::static_n_q_points: 0 +DEAL::FEEvaluation::static_dofs_per_component: 0 +DEAL::FEEvaluation::tensor_dofs_per_cell: 0 +DEAL::FEEvaluation::static_dofs_per_cell: 0 +DEAL::FEEvaluation::dofs_per_component: 3 +DEAL::FEEvaluation::dofs_per_cell: 3 +DEAL::FEEvaluation::n_q_points: 4 +DEAL::Checking FESystem<1>[FE_DGP<1>(2)^2] +DEAL::FEEvaluation::dimension: 1 +DEAL::FEEvaluation::n_components: 2 +DEAL::FEEvaluation::static_n_q_points: 4 +DEAL::FEEvaluation::static_dofs_per_component: 3 +DEAL::FEEvaluation::tensor_dofs_per_cell: 6 +DEAL::FEEvaluation::static_dofs_per_cell: 6 +DEAL::FEEvaluation::dofs_per_component: 3 +DEAL::FEEvaluation::dofs_per_cell: 6 +DEAL::FEEvaluation::n_q_points: 4 +DEAL::Checking FESystem<1>[FE_Q<1>(1)] +DEAL::FEEvaluation::dimension: 1 +DEAL::FEEvaluation::n_components: 1 +DEAL::FEEvaluation::static_n_q_points: 0 +DEAL::FEEvaluation::static_dofs_per_component: 0 +DEAL::FEEvaluation::tensor_dofs_per_cell: 0 +DEAL::FEEvaluation::static_dofs_per_cell: 0 +DEAL::FEEvaluation::dofs_per_component: 2 +DEAL::FEEvaluation::dofs_per_cell: 2 +DEAL::FEEvaluation::n_q_points: 4 +DEAL::Checking FESystem<2>[FE_Q<2>(2)^2] +DEAL::FEEvaluation::dimension: 2 +DEAL::FEEvaluation::n_components: 2 +DEAL::FEEvaluation::static_n_q_points: 16 +DEAL::FEEvaluation::static_dofs_per_component: 9 +DEAL::FEEvaluation::tensor_dofs_per_cell: 18 +DEAL::FEEvaluation::static_dofs_per_cell: 18 +DEAL::FEEvaluation::dofs_per_component: 9 +DEAL::FEEvaluation::dofs_per_cell: 18 +DEAL::FEEvaluation::n_q_points: 16 +DEAL::FEEvaluation::dimension: 2 +DEAL::FEEvaluation::n_components: 2 +DEAL::FEEvaluation::static_n_q_points: 0 +DEAL::FEEvaluation::static_dofs_per_component: 0 +DEAL::FEEvaluation::tensor_dofs_per_cell: 0 +DEAL::FEEvaluation::static_dofs_per_cell: 0 +DEAL::FEEvaluation::dofs_per_component: 9 +DEAL::FEEvaluation::dofs_per_cell: 18 +DEAL::FEEvaluation::n_q_points: 16 +DEAL::Checking FESystem<2>[FE_Q<2>(2)] +DEAL::FEEvaluation::dimension: 2 +DEAL::FEEvaluation::n_components: 2 +DEAL::FEEvaluation::static_n_q_points: 16 +DEAL::FEEvaluation::static_dofs_per_component: 9 +DEAL::FEEvaluation::tensor_dofs_per_cell: 18 +DEAL::FEEvaluation::static_dofs_per_cell: 18 +DEAL::FEEvaluation::dofs_per_component: 9 +DEAL::FEEvaluation::dofs_per_cell: 18 +DEAL::FEEvaluation::n_q_points: 16 +DEAL::FEEvaluation::dimension: 2 +DEAL::FEEvaluation::n_components: 2 +DEAL::FEEvaluation::static_n_q_points: 0 +DEAL::FEEvaluation::static_dofs_per_component: 0 +DEAL::FEEvaluation::tensor_dofs_per_cell: 0 +DEAL::FEEvaluation::static_dofs_per_cell: 0 +DEAL::FEEvaluation::dofs_per_component: 9 +DEAL::FEEvaluation::dofs_per_cell: 18 +DEAL::FEEvaluation::n_q_points: 16 +DEAL::Checking FESystem<2>[FE_DGP<2>(2)^2] +DEAL::FEEvaluation::dimension: 2 +DEAL::FEEvaluation::n_components: 2 +DEAL::FEEvaluation::static_n_q_points: 16 +DEAL::FEEvaluation::static_dofs_per_component: 9 +DEAL::FEEvaluation::tensor_dofs_per_cell: 18 +DEAL::FEEvaluation::static_dofs_per_cell: 18 +DEAL::FEEvaluation::dofs_per_component: 6 +DEAL::FEEvaluation::dofs_per_cell: 12 +DEAL::FEEvaluation::n_q_points: 16 +DEAL::Checking FESystem<2>[FE_Q<2>(1)] +DEAL::FEEvaluation::dimension: 2 +DEAL::FEEvaluation::n_components: 2 +DEAL::FEEvaluation::static_n_q_points: 0 +DEAL::FEEvaluation::static_dofs_per_component: 0 +DEAL::FEEvaluation::tensor_dofs_per_cell: 0 +DEAL::FEEvaluation::static_dofs_per_cell: 0 +DEAL::FEEvaluation::dofs_per_component: 4 +DEAL::FEEvaluation::dofs_per_cell: 8 +DEAL::FEEvaluation::n_q_points: 16 +DEAL::Checking FESystem<3>[FE_Q<3>(2)^3] +DEAL::FEEvaluation::dimension: 3 +DEAL::FEEvaluation::n_components: 3 +DEAL::FEEvaluation::static_n_q_points: 64 +DEAL::FEEvaluation::static_dofs_per_component: 27 +DEAL::FEEvaluation::tensor_dofs_per_cell: 81 +DEAL::FEEvaluation::static_dofs_per_cell: 81 +DEAL::FEEvaluation::dofs_per_component: 27 +DEAL::FEEvaluation::dofs_per_cell: 81 +DEAL::FEEvaluation::n_q_points: 64 +DEAL::FEEvaluation::dimension: 3 +DEAL::FEEvaluation::n_components: 3 +DEAL::FEEvaluation::static_n_q_points: 0 +DEAL::FEEvaluation::static_dofs_per_component: 0 +DEAL::FEEvaluation::tensor_dofs_per_cell: 0 +DEAL::FEEvaluation::static_dofs_per_cell: 0 +DEAL::FEEvaluation::dofs_per_component: 27 +DEAL::FEEvaluation::dofs_per_cell: 81 +DEAL::FEEvaluation::n_q_points: 64 +DEAL::Checking FESystem<3>[FE_Q<3>(2)] +DEAL::FEEvaluation::dimension: 3 +DEAL::FEEvaluation::n_components: 3 +DEAL::FEEvaluation::static_n_q_points: 64 +DEAL::FEEvaluation::static_dofs_per_component: 27 +DEAL::FEEvaluation::tensor_dofs_per_cell: 81 +DEAL::FEEvaluation::static_dofs_per_cell: 81 +DEAL::FEEvaluation::dofs_per_component: 27 +DEAL::FEEvaluation::dofs_per_cell: 81 +DEAL::FEEvaluation::n_q_points: 64 +DEAL::FEEvaluation::dimension: 3 +DEAL::FEEvaluation::n_components: 3 +DEAL::FEEvaluation::static_n_q_points: 0 +DEAL::FEEvaluation::static_dofs_per_component: 0 +DEAL::FEEvaluation::tensor_dofs_per_cell: 0 +DEAL::FEEvaluation::static_dofs_per_cell: 0 +DEAL::FEEvaluation::dofs_per_component: 27 +DEAL::FEEvaluation::dofs_per_cell: 81 +DEAL::FEEvaluation::n_q_points: 64 +DEAL::Checking FESystem<3>[FE_DGP<3>(2)^2] +DEAL::FEEvaluation::dimension: 3 +DEAL::FEEvaluation::n_components: 2 +DEAL::FEEvaluation::static_n_q_points: 64 +DEAL::FEEvaluation::static_dofs_per_component: 27 +DEAL::FEEvaluation::tensor_dofs_per_cell: 54 +DEAL::FEEvaluation::static_dofs_per_cell: 54 +DEAL::FEEvaluation::dofs_per_component: 10 +DEAL::FEEvaluation::dofs_per_cell: 20 +DEAL::FEEvaluation::n_q_points: 64 +DEAL::Checking FESystem<3>[FE_Q<3>(1)] +DEAL::FEEvaluation::dimension: 3 +DEAL::FEEvaluation::n_components: 3 +DEAL::FEEvaluation::static_n_q_points: 0 +DEAL::FEEvaluation::static_dofs_per_component: 0 +DEAL::FEEvaluation::tensor_dofs_per_cell: 0 +DEAL::FEEvaluation::static_dofs_per_cell: 0 +DEAL::FEEvaluation::dofs_per_component: 8 +DEAL::FEEvaluation::dofs_per_cell: 24 +DEAL::FEEvaluation::n_q_points: 64