//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()
{
// 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(
test_fe_datas<2>();
test_fe_datas<3>();
}
-
-
-