transfer internals \
dgq_1 \
q_1 q_2 q_3 q_4 interpolate_q1 \
- rt_1 rt_2 rt_3 rt_4 rt_5 rt_6 rtdiff rtn_1 interpolate_rtn \
+ rt_1 rt_2 rt_3 rt_4 rt_5 rt_6 rtdiff rtn_1 interpolate_rt interpolate_rtn \
dgp_monomial_1 dgp_monomial_2 \
system_1 interpolate_system \
non_primitive_1 non_primitive_2 \
--- /dev/null
+//----------------------------------------------------------------------
+// $Id$
+// Version: $Name$
+//
+// Copyright (C) 2005 by the deal.II authors
+//
+// This file is subject to QPL and may not be distributed
+// without copyright and license information. Please refer
+// to the file deal.II/doc/license.html for the text and
+// further information on this license.
+//
+//----------------------------------------------------------------------
+
+#include "interpolate_common.h"
+#include <base/logstream.h>
+#include <base/quadrature_lib.h>
+
+#include <fe/fe_raviart_thomas.h>
+
+#include <fstream>
+
+// FE_RaviartThomas<dim>::interpolate(...)
+
+template <int dim>
+void check1(const Function<dim>& f,
+ const unsigned int degree)
+{
+ FE_RaviartThomas<dim> fe(degree);
+ deallog << fe.get_name() << ' ';
+ deallog << fe.get_generalized_support_points().size() << ' ';
+
+ std::vector<double> dofs(fe.dofs_per_cell);
+
+ std::vector<std::vector<double> >
+ values(dim, std::vector<double>(fe.get_generalized_support_points().size()));
+ std::vector<Vector<double> >
+ vectors(fe.get_generalized_support_points().size(),
+ Vector<double>(dim));
+ f.vector_value_list(fe.get_generalized_support_points(), vectors);
+
+ for (unsigned int c=0;c<values.size();++c)
+ for (unsigned int k=0;k<values[c].size();++k)
+ values[c][k] = vectors[k](c);
+
+ fe.interpolate(dofs, values);
+ deallog << " vector " << vector_difference(fe,dofs,f,0);
+
+ fe.interpolate(dofs, vectors, 0);
+ deallog << " Vector " << vector_difference(fe,dofs,f,0) << std::endl;
+}
+
+int main()
+{
+ std::ofstream logfile ("interpolate_rt.output");
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-15);
+
+// Q1WedgeFunction<1,1,2> w1;
+// check1(w1,1,2);
+// check1(w1,2,2);
+// check1(w1,3,2);
+ Q1WedgeFunction<2,1,2> w21;
+ check1(w21,1);
+ check1(w21,2);
+ Q1WedgeFunction<2,2,2> w22;
+ check1(w22,2);
+ Q1WedgeFunction<2,3,2> w23;
+ check1(w23,3);
+// Q1WedgeFunction<3,1,3> w3;
+// check1(w3,1);
+// check1(w3,2);
+}
std::ofstream logfile ("interpolate_rtn.output");
deallog.attach(logfile);
deallog.depth_console(0);
- deallog.threshold_double(1.e-15);
+ deallog.threshold_double(1.e-13);
-// Q1WedgeFunction<1,1,2> w1;
-// check1(w1,1,2);
-// check1(w1,2,2);
-// check1(w1,3,2);
+// Q1WedgeFunction<1,1,2> w1;
+// check1(w1,1,2);
+// check1(w1,2,2);
+// check1(w1,3,2);
Q1WedgeFunction<2,1,2> w2;
check1(w2,1);
check1(w2,2);
Q1WedgeFunction<2,2,2> w22;
check1(w22,2);
-// Q1WedgeFunction<3,1,3> w3;
-// check1(w3,1);
-// check1(w3,2);
+ Q1WedgeFunction<2,3,2> w23;
+ check1(w23,3);
+ Q1WedgeFunction<3,1,3> w3;
+ check1(w3,1);
+ check1(w3,2);
}
DEAL::components=2
DEAL::degree=1
DEAL::conformity=4
-DEAL::unit_support_points=4
+DEAL::unit_support_points=0
DEAL::unit_face_support_points=1
DEAL::generalized_support_points=4
DEAL::generalized_face_support_points=1
DEAL::components=2
DEAL::degree=2
DEAL::conformity=4
-DEAL::unit_support_points=12
+DEAL::unit_support_points=0
DEAL::unit_face_support_points=2
DEAL::generalized_support_points=12
DEAL::generalized_face_support_points=2
DEAL::components=2
DEAL::degree=3
DEAL::conformity=4
-DEAL::unit_support_points=24
+DEAL::unit_support_points=0
DEAL::unit_face_support_points=3
-DEAL::generalized_support_points=24
+DEAL::generalized_support_points=21
DEAL::generalized_face_support_points=3
DEAL::support on face 0: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
DEAL::support on face 1: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
DEAL::components=3
DEAL::degree=2
DEAL::conformity=0
-DEAL::unit_support_points=16
-DEAL::unit_face_support_points=2
-DEAL::generalized_support_points=16
-DEAL::generalized_face_support_points=2
+DEAL::unit_support_points=0
+DEAL::unit_face_support_points=0
+DEAL::generalized_support_points=0
+DEAL::generalized_face_support_points=0
DEAL::support on face 0: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
DEAL::support on face 1: 0 1 2 3 4 5 6 7 8 9 10 11 13 15
DEAL::support on face 2: 0 1 2 3 4 5 6 7 8 9 10 11 14 15
--- /dev/null
+
+DEAL::FE_RaviartThomas<2>(1) 12 vector 0.832332 Vector 0.832332
+DEAL::FE_RaviartThomas<2>(2) 21 vector 0.898440 Vector 0.898440
+DEAL::FE_RaviartThomas<2>(2) 21 vector 0.749882 Vector 0.749882
+DEAL::FE_RaviartThomas<2>(3) 32 vector 0.749555 Vector 0.749555
DEAL::FE_RaviartThomasNodal<2>(1) 12 vector 0 Vector 0
DEAL::FE_RaviartThomasNodal<2>(2) 24 vector 0 Vector 0
DEAL::FE_RaviartThomasNodal<2>(2) 24 vector 0 Vector 0
+DEAL::FE_RaviartThomasNodal<2>(3) 40 vector 0 Vector 0
+DEAL::FE_RaviartThomasNodal<3>(1) 36 vector 0 Vector 0
+DEAL::FE_RaviartThomasNodal<3>(2) 108 vector 0 Vector 0