33
33
34
34
template <int dim>
35
35
void
36
- test (const FiniteElement<dim> &fe, const unsigned int n_subdivisions = 1 )
36
+ test (const FiniteElement<dim> &fe)
37
37
{
38
38
const auto &pattern = fe.get_local_dof_sparsity_pattern ();
39
39
deallog << fe.get_name () << " :\n " ;
@@ -56,12 +56,24 @@ main()
56
56
initlog ();
57
57
58
58
// The simplest case is a single iso Q1:
59
- test<1 >(FE_Q_iso_Q1<1 >(2 ), 1 );
59
+ test<1 >(FE_Q_iso_Q1<1 >(2 ));
60
+ test<1 >(FE_Q_iso_Q1<1 >(3 ));
61
+
62
+ // It also works with custom support points:
63
+ std::vector<Point <1 >> points = {Point <1 >(0.0 ), Point <1 >(0.1 ), Point <1 >(1.0 )};
64
+ test<1 >(FE_Q_iso_Q1<1 >(points));
65
+
66
+ std::vector<Point <1 >> points2 = {Point <1 >(0.0 ),
67
+ Point <1 >(0.1 ),
68
+ Point <1 >(0.2 ),
69
+ Point <1 >(1.0 )};
70
+ test<1 >(FE_Q_iso_Q1<1 >(points2));
71
+
60
72
// The 2 iso Q1 elements couple using their pattern:
61
- test<1 >(FESystem<1 , 1 >(FE_DGQ<1 >(1 ), 1 , FE_Q_iso_Q1<1 >(2 ), 2 ), 1 );
73
+ test<1 >(FESystem<1 , 1 >(FE_DGQ<1 >(1 ), 1 , FE_Q_iso_Q1<1 >(2 ), 2 ));
62
74
// The coupling between the first two to the third copy is a full coupling
63
75
// currently, because we don't detect this yet:
64
- test<1 >(FESystem<1 , 1 >(FE_Q_iso_Q1<1 >(2 ), 2 , FE_Q_iso_Q1<1 >(2 ), 1 ), 1 );
76
+ test<1 >(FESystem<1 , 1 >(FE_Q_iso_Q1<1 >(2 ), 2 , FE_Q_iso_Q1<1 >(2 ), 1 ));
65
77
// Different iso_Q1 degrees always couple fully (off diagonal blocks):
66
- test<1 >(FESystem<1 , 1 >(FE_Q_iso_Q1<1 >(2 ), 1 , FE_Q_iso_Q1<1 >(3 ), 1 ), 1 );
78
+ test<1 >(FESystem<1 , 1 >(FE_Q_iso_Q1<1 >(2 ), 1 , FE_Q_iso_Q1<1 >(3 ), 1 ));
67
79
}
0 commit comments