};
-const unsigned int FE_DGQ<1>::Matrices::n_embedding_matrices = 5;
+const unsigned int FE_DGQ<1>::Matrices::n_embedding_matrices
+ = sizeof(FE_DGQ<1>::Matrices::embedding) /
+ sizeof(FE_DGQ<1>::Matrices::embedding[0]);
};
-const unsigned int FE_DGQ<1>::Matrices::n_projection_matrices = 8;
+const unsigned int FE_DGQ<1>::Matrices::n_projection_matrices
+ = sizeof(FE_DGQ<1>::Matrices::projection_matrices) /
+ sizeof(FE_DGQ<1>::Matrices::projection_matrices[0]);
+
#else // #if deal_II_dimension
// On gcc2.95 on Alpha OSF1, the native assembler does not like empty
FE_DGQ_2d::dgq4_into_dgq4_refined
};
-const unsigned int FE_DGQ<2>::Matrices::n_embedding_matrices = 5;
-
+const unsigned int FE_DGQ<2>::Matrices::n_embedding_matrices
+ = sizeof(FE_DGQ<2>::Matrices::embedding) /
+ sizeof(FE_DGQ<2>::Matrices::embedding[0]);
const double * const FE_DGQ<2>::Matrices::projection_matrices[] =
};
-const unsigned int FE_DGQ<2>::Matrices::n_projection_matrices = 8;
+const unsigned int FE_DGQ<2>::Matrices::n_projection_matrices
+ = sizeof(FE_DGQ<2>::Matrices::projection_matrices) /
+ sizeof(FE_DGQ<2>::Matrices::projection_matrices[0]);
+
#else // #if deal_II_dimension
// On gcc2.95 on Alpha OSF1, the native assembler does not like empty
};
-const unsigned int FE_DGQ<3>::Matrices::n_embedding_matrices = 4;
+const unsigned int FE_DGQ<3>::Matrices::n_embedding_matrices
+ = sizeof(FE_DGQ<3>::Matrices::embedding) /
+ sizeof(FE_DGQ<3>::Matrices::embedding[0]);
+
const double * const FE_DGQ<3>::Matrices::projection_matrices[] =
FE_DGQ_3d::dgq4_refined_onto_dgq4
};
-const unsigned int FE_DGQ<3>::Matrices::n_projection_matrices = 5;
+const unsigned int FE_DGQ<3>::Matrices::n_projection_matrices
+ = sizeof(FE_DGQ<3>::Matrices::projection_matrices) /
+ sizeof(FE_DGQ<3>::Matrices::projection_matrices[0]);
#else // #if deal_II_dimension
// embedding matrices
-const unsigned int FE_Q<1>::Matrices::n_embedding_matrices = 4;
-
const double * const
FE_Q<1>::Matrices::embedding[][GeometryInfo<1>::children_per_cell] =
{
{FE_Q_1d::q4_into_q4_refined_0, FE_Q_1d::q4_into_q4_refined_1},
};
+const unsigned int
+FE_Q<1>::Matrices::n_embedding_matrices
+ = sizeof(FE_Q<1>::Matrices::embedding) /
+ sizeof(FE_Q<1>::Matrices::embedding[0]);
+
+
// No constraints in 1d
const unsigned int
// embedding matrices
-const unsigned int FE_Q<2>::Matrices::n_embedding_matrices = 3;
-
const double * const
FE_Q<2>::Matrices::embedding[][GeometryInfo<2>::children_per_cell] =
{
};
+const unsigned int
+FE_Q<2>::Matrices::n_embedding_matrices
+ = sizeof(FE_Q<2>::Matrices::embedding) /
+ sizeof(FE_Q<2>::Matrices::embedding[0]);
+
// Constraint matrices taken from Wolfgangs old version
namespace FE_Q_2d
const unsigned int
-FE_Q<2>::Matrices::n_constraint_matrices = 4;
+FE_Q<2>::Matrices::n_constraint_matrices
+ = sizeof(FE_Q<2>::Matrices::constraint_matrices) /
+ sizeof(FE_Q<2>::Matrices::constraint_matrices[0]);
// embedding matrices
-const unsigned int
-FE_Q<3>::Matrices::n_embedding_matrices = 2;
-
const double * const
FE_Q<3>::Matrices::embedding[][GeometryInfo<3>::children_per_cell] =
{
};
+const unsigned int
+FE_Q<3>::Matrices::n_embedding_matrices
+ = sizeof(FE_Q<3>::Matrices::embedding) /
+ sizeof(FE_Q<3>::Matrices::embedding[0]);
+
+
// Constraint matrices taken from Wolfgangs old version
};
const unsigned int
-FE_Q<3>::Matrices::n_constraint_matrices = 2;
+FE_Q<3>::Matrices::n_constraint_matrices
+ = sizeof(FE_Q<3>::Matrices::constraint_matrices) /
+ sizeof(FE_Q<3>::Matrices::constraint_matrices[0]);
+
#else // #if deal_II_dimension