]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Avoid instantiating FE_FaceQ and FE_FaceP in 1d.
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Thu, 14 Nov 2013 20:38:31 +0000 (20:38 +0000)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Thu, 14 Nov 2013 20:38:31 +0000 (20:38 +0000)
git-svn-id: https://svn.dealii.org/trunk@31661 0785d39b-7218-0410-832d-ea1e28bc413d

tests/fe/fe_data_test.cc

index 40abc11a96a04cc72d474a03855974b00cc57810..7d00b8382677a7105286f6441b4b817bb861081a 100644 (file)
 //TODO: Find support_on_face problems for test-no. > 7
 //TODO: Check support_on_face in 3D
 
+
+template <int dim>
+void test_2d_3d (std::vector<FiniteElement<dim> *> &fe_datas)
+{
+                                  // Face Q elements
+  fe_datas.push_back(new FE_FaceQ<dim> (0));
+  deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+  fe_datas.push_back(new FE_FaceQ<dim> (1));
+  deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+  fe_datas.push_back(new FE_FaceQ<dim> (3));
+  deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+                                  // Face P elements
+  fe_datas.push_back(new FE_FaceP<dim> (0));
+  deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+  fe_datas.push_back(new FE_FaceP<dim> (1));
+  deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+  fe_datas.push_back(new FE_FaceP<dim> (3));
+  deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+                                  // Vector DG elements
+  fe_datas.push_back(
+    new FE_DGRaviartThomas<dim>(0));
+  deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+  fe_datas.push_back(
+    new FE_DGRaviartThomas<dim>(1));
+  deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+  fe_datas.push_back(
+    new FE_DGNedelec<dim>(0));
+  deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+  fe_datas.push_back(
+    new FE_DGNedelec<dim>(1));
+  deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+
+                                  // Hdiv elements
+  FE_RaviartThomas<dim> *rt0 = new FE_RaviartThomas<dim>(0);
+  fe_datas.push_back(rt0);
+  deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+
+  FE_RaviartThomas<dim> *rt1 = new FE_RaviartThomas<dim>(1);
+  fe_datas.push_back(rt1);
+  deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+
+  fe_datas.push_back(new FE_RaviartThomas<dim>(2));
+  deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+  fe_datas.push_back(new FESystem<dim>(*rt1, 1,
+                                      FE_DGQ<dim> (1), 1));
+  deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+
+                                  // Hcurl elements
+  FE_Nedelec<dim> *ned0 = new FE_Nedelec<dim>(0);
+  fe_datas.push_back(ned0);
+  deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+  FE_Nedelec<dim> *ned1 = new FE_Nedelec<dim>(1);
+  fe_datas.push_back(ned1);
+  deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+}
+
+
+
+void test_2d_3d (std::vector<FiniteElement<1> *> &fe_datas)
+{}
+
+
+
+
 template<int dim>
 void test_fe_datas()
 {
@@ -74,59 +138,8 @@ void test_fe_datas()
 
 
   // Check vector elements in 2d and higher only
-  if (dim>1)
-    {
-      // Face Q elements
-      fe_datas.push_back(new FE_FaceQ<dim> (0));
-      deallog << (*fe_datas.rbegin())->get_name() << std::endl;
-      fe_datas.push_back(new FE_FaceQ<dim> (1));
-      deallog << (*fe_datas.rbegin())->get_name() << std::endl;
-      fe_datas.push_back(new FE_FaceQ<dim> (3));
-      deallog << (*fe_datas.rbegin())->get_name() << std::endl;
-      // Face P elements
-      fe_datas.push_back(new FE_FaceP<dim> (0));
-      deallog << (*fe_datas.rbegin())->get_name() << std::endl;
-      fe_datas.push_back(new FE_FaceP<dim> (1));
-      deallog << (*fe_datas.rbegin())->get_name() << std::endl;
-      fe_datas.push_back(new FE_FaceP<dim> (3));
-      deallog << (*fe_datas.rbegin())->get_name() << std::endl;
-      // Vector DG elements
-      fe_datas.push_back(
-        new FE_DGRaviartThomas<dim>(0));
-      deallog << (*fe_datas.rbegin())->get_name() << std::endl;
-      fe_datas.push_back(
-        new FE_DGRaviartThomas<dim>(1));
-      deallog << (*fe_datas.rbegin())->get_name() << std::endl;
-      fe_datas.push_back(
-        new FE_DGNedelec<dim>(0));
-      deallog << (*fe_datas.rbegin())->get_name() << std::endl;
-      fe_datas.push_back(
-        new FE_DGNedelec<dim>(1));
-      deallog << (*fe_datas.rbegin())->get_name() << std::endl;
+  test_2d_3d (fe_datas);
 
-      // Hdiv elements
-      FE_RaviartThomas<dim> *rt0 = new FE_RaviartThomas<dim>(0);
-      fe_datas.push_back(rt0);
-      deallog << (*fe_datas.rbegin())->get_name() << std::endl;
-
-      FE_RaviartThomas<dim> *rt1 = new FE_RaviartThomas<dim>(1);
-      fe_datas.push_back(rt1);
-      deallog << (*fe_datas.rbegin())->get_name() << std::endl;
-
-      fe_datas.push_back(new FE_RaviartThomas<dim>(2));
-      deallog << (*fe_datas.rbegin())->get_name() << std::endl;
-      fe_datas.push_back(new FESystem<dim>(*rt1, 1,
-                                           FE_DGQ<dim> (1), 1));
-      deallog << (*fe_datas.rbegin())->get_name() << std::endl;
-
-      // Hcurl elements
-      FE_Nedelec<dim> *ned0 = new FE_Nedelec<dim>(0);
-      fe_datas.push_back(ned0);
-      deallog << (*fe_datas.rbegin())->get_name() << std::endl;
-      FE_Nedelec<dim> *ned1 = new FE_Nedelec<dim>(1);
-      fe_datas.push_back(ned1);
-      deallog << (*fe_datas.rbegin())->get_name() << std::endl;
-    }
   if (dim==2)
     {
       fe_datas.push_back(
@@ -265,6 +278,3 @@ int main()
   test_fe_datas<2>();
   test_fe_datas<3>();
 }
-
-
-

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.