]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Tes the opposite case of _01.
authorwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 21 Jun 2005 21:35:24 +0000 (21:35 +0000)
committerwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 21 Jun 2005 21:35:24 +0000 (21:35 +0000)
git-svn-id: https://svn.dealii.org/trunk@10917 0785d39b-7218-0410-832d-ea1e28bc413d

tests/bits/fe_tools_cpfqpm_03.cc [new file with mode: 0644]

diff --git a/tests/bits/fe_tools_cpfqpm_03.cc b/tests/bits/fe_tools_cpfqpm_03.cc
new file mode 100644 (file)
index 0000000..4be6c19
--- /dev/null
@@ -0,0 +1,67 @@
+//----------------------------  fe_tools_cpfqpm_03.cc  ---------------------------
+//    $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.
+//
+//----------------------------  fe_tools_cpfqpm_03.cc  ---------------------------
+
+#include "../tests.h"
+#include "fe_tools_common.cc"
+#include <base/quadrature_lib.h>
+
+// check
+//   FETools::compute_projection_from_quadrature_points_matrix
+// we put this into the fe_tools_common framework for simplicity, but
+// in fact we ignore the second FE it passes to the check_this() function
+// and we can only test as well for scalar elements, since this is all
+// the function presently supports.
+//
+// this test simply computes the matrix and outputs some of its
+// characteristics. in contrast to the _01 test, we choose a FE that has less
+// DoFs than there are quadrature points -- not an uncommon case, and one that
+// needs to work
+
+
+std::string output_file_name = "fe_tools_cpfqpm_03.output";
+
+
+template <int dim>
+void
+check_this (const FiniteElement<dim> &fe,
+            const FiniteElement<dim> &/*fe2*/)
+{
+                                   // only check if both elements have
+                                   // support points. otherwise,
+                                   // interpolation doesn't really
+                                   // work
+  if (fe.n_components() != 1)
+    return;
+
+                                   // ignore this check if this fe has already
+                                   // been treated
+  static std::set<std::string> already_checked;
+  if (already_checked.find(fe.get_name()) != already_checked.end())
+    return;
+  already_checked.insert (fe.get_name());
+  
+
+                                   // test with different quadrature formulas
+  QGauss<dim> q_lhs(fe.degree+1);
+  QGauss<dim> q_rhs(fe.degree+3);
+      
+  FullMatrix<double> X (fe.dofs_per_cell,
+                        q_rhs.n_quadrature_points);
+
+  FETools::compute_projection_from_quadrature_points_matrix (fe,
+                                                             q_lhs, q_rhs,
+                                                             X);
+      
+  output_matrix (X);
+}
+

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.