Skip to content

Commit 6da01bc

Browse files
committedMar 8, 2025·
check FE_Q_iso_Q1 gradients in support points
1 parent f808a1a commit 6da01bc

File tree

2 files changed

+96
-0
lines changed

2 files changed

+96
-0
lines changed
 

‎tests/fe/q_iso_q1_01.cc

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
// ------------------------------------------------------------------------
2+
//
3+
// SPDX-License-Identifier: LGPL-2.1-or-later
4+
// Copyright (C) 2007 - 2020 by the deal.II authors
5+
//
6+
// This file is part of the deal.II library.
7+
//
8+
// Part of the source code is dual licensed under Apache-2.0 WITH
9+
// LLVM-exception OR LGPL-2.1-or-later. Detailed license information
10+
// governing the source code and code contributions can be found in
11+
// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II.
12+
//
13+
// ------------------------------------------------------------------------
14+
15+
// Check gradients in support points for FE_Q_iso_Q1
16+
17+
#include "../tests.h"
18+
19+
#include <deal.II/base/logstream.h>
20+
#include <deal.II/base/qprojector.h>
21+
#include <deal.II/base/quadrature_lib.h>
22+
23+
#include <deal.II/dofs/dof_handler.h>
24+
#include <deal.II/grid/grid_generator.h>
25+
#include <deal.II/grid/reference_cell.h>
26+
#include <deal.II/grid/tria.h>
27+
#include <deal.II/grid/tria_iterator.h>
28+
29+
#include <deal.II/fe/fe_q_iso_q1.h>
30+
#include <deal.II/fe/fe_values.h>
31+
#include <deal.II/fe/mapping_q.h>
32+
33+
template <int dim>
34+
void check(const FiniteElement<dim> &fe, const Quadrature<dim>& quad, const char* name)
35+
{
36+
deallog << name << ":" << std::endl;
37+
38+
Triangulation<dim> tr;
39+
MappingQ<dim> mapping(1);
40+
DoFHandler<dim> dof(tr);
41+
GridGenerator::hyper_cube(tr, 0., 1.);
42+
dof.distribute_dofs(fe);
43+
typename DoFHandler<dim>::cell_iterator c = dof.begin();
44+
45+
FEValues<dim> fev(mapping,
46+
fe,
47+
quad,
48+
UpdateFlags(update_gradients));
49+
50+
fev.reinit(c);
51+
const unsigned int n_q_points = quad.size();
52+
53+
for (unsigned int q=0;q<n_q_points;++q)
54+
{
55+
deallog << quad.point(q);
56+
for (unsigned int i = 0; i < fe.dofs_per_cell; ++i) {
57+
deallog << " " << fev.shape_grad(i, q).norm();
58+
}
59+
deallog << std::endl;
60+
}
61+
62+
}
63+
64+
int
65+
main()
66+
{
67+
initlog();
68+
69+
FE_Q_iso_Q1<2> f1(2);
70+
FE_Q_iso_Q1<2> f2(QGaussLobatto<1>(2 + 1).get_points());
71+
QGauss<2> quadrature(3);
72+
73+
check<>(f1, quadrature, "iso_q1(2)-subd");
74+
check<>(f2, quadrature, "iso_q1(2)-GL");
75+
}

‎tests/fe/q_iso_q1_01.output

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
DEAL::iso_q1(2)-subd:
3+
DEAL::0.112702 0.112702 2.19089 0.00000 0.00000 0.00000 1.61345 0.00000 1.61345 0.00000 0.637537
4+
DEAL::0.500000 0.112702 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 2.00000 0.00000 2.00000
5+
DEAL::0.887298 0.112702 0.00000 2.19089 0.00000 0.00000 0.00000 1.61345 1.61345 0.00000 0.637537
6+
DEAL::0.112702 0.500000 0.00000 0.00000 0.00000 0.00000 2.00000 0.00000 0.00000 0.00000 2.00000
7+
DEAL::0.500000 0.500000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
8+
DEAL::0.887298 0.500000 0.00000 0.00000 0.00000 0.00000 0.00000 2.00000 0.00000 0.00000 2.00000
9+
DEAL::0.112702 0.887298 0.00000 0.00000 2.19089 0.00000 1.61345 0.00000 0.00000 1.61345 0.637537
10+
DEAL::0.500000 0.887298 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 2.00000 2.00000
11+
DEAL::0.887298 0.887298 0.00000 0.00000 0.00000 2.19089 0.00000 1.61345 0.00000 1.61345 0.637537
12+
DEAL::iso_q1(2)-GL:
13+
DEAL::0.112702 0.112702 2.19089 0.00000 0.00000 0.00000 1.61345 0.00000 1.61345 0.00000 0.637537
14+
DEAL::0.500000 0.112702 1.54919 1.54919 0.00000 0.00000 0.450807 0.450807 2.00000 0.00000 2.00000
15+
DEAL::0.887298 0.112702 0.00000 2.19089 0.00000 0.00000 0.00000 1.61345 1.61345 0.00000 0.637537
16+
DEAL::0.112702 0.500000 1.54919 0.00000 1.54919 0.00000 2.00000 0.00000 0.450807 0.450807 2.00000
17+
DEAL::0.500000 0.500000 0.00000 0.00000 0.00000 0.00000 2.00000 2.00000 2.00000 2.00000 0.00000
18+
DEAL::0.887298 0.500000 0.00000 1.54919 0.00000 1.54919 0.00000 2.00000 0.450807 0.450807 2.00000
19+
DEAL::0.112702 0.887298 0.00000 0.00000 2.19089 0.00000 1.61345 0.00000 0.00000 1.61345 0.637537
20+
DEAL::0.500000 0.887298 0.00000 0.00000 1.54919 1.54919 0.450807 0.450807 0.00000 2.00000 2.00000
21+
DEAL::0.887298 0.887298 0.00000 0.00000 0.00000 2.19089 0.00000 1.61345 0.00000 1.61345 0.637537

0 commit comments

Comments
 (0)
Please sign in to comment.